■目次
Visual StudioインストールC#でウインドウズアプリケーションを作成C#でウインドウズアプリケーション(ガジェット)を作成Cでコマンドラインアプリケーションを作成戻る
■Visual Studio
Microsoftが開発している統合開発環境
■インストール
第1回 Visual Studio 2015って何ができるの?:連載:簡単! Visual Studio 2015入門(1/6 ページ) - @IT https://atmarkit.itmedia.co.jp/ait/articles/1508/07/news031.html 解説通りにC#でウインドウズアプリケーションを作成すると、 C:\Users\refirio\Documents\Visual Studio 2015\Projects\WindowsFormsApplication1\ にプロジェクトが、 C:\Users\refirio\Documents\Visual Studio 2015\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe に実行ファイルが作成された ※Unityを使う際に Visual Studio 2015 をインストール済みだった 日本語化は行っていなかったので Visual Studio 2015 Language Pack をインストール ■2021/01/03に Visual Studio 2019 で新規に開発環境を作成 https://visualstudio.microsoft.com/ja/downloads/ からVisual Studio 2019の「コミュニティ」をダウンロードした ダウンロードした vs_community__1846245101.1607761859.exe を実行してインストール インストールの際、「.NETデスクトップ開発」を選択した。さらに「C++によるデスクトップ開発」を選択し、右の一覧から「最新のv142ビルドツール用C++MFC」を選択した 初起動後にサインインを行った Visual Studio 2019でMFCアプリのプロジェクトを作成する : MIBC備忘録 http://mibc.blog.fc2.com/blog-entry-186.html ■2016/06/30に Visual Studio 2017 で新規に開発環境を作成 https://www.visualstudio.com/ja/downloads/ からVisual Studio Communityをダウンロードした ダウンロードした vs_community__476664055.1498735138.exe を実行してインストール インストールの際、「.NETデスクトップ開発」を選択した 初起動時は使えるようになるまでとても時間がかかった …と思ったが、サインインのウインドウが後ろ側に表示されていることに気付かなかっただけだった インストール後は以下が参考になりそう 急にWindowsでプログラムを書くことになった人向けのクイックスタートガイド - Qiita https://qiita.com/cafeaulait/items/4f1387796590c633f346
■C#でウインドウズアプリケーションを作成
初期画面で「新しいプロジェクトの作成」をクリック、 もしくはメニューから「ファイル → 新規作成 → プロジェクト」を選択し、 「新しいプロジェクトの作成」画面を開く 「C#」「Windows」「デスクトップ」で絞り込み → 「Windows フォームアプリケーション (.NET Framework)」を選択 以下初期状態のまま「作成」ボタンをクリック プロジェクト名: WindowsFormsApp1 場所: C:\Users\refirio\source\repos ソリューション名: WindowsFormsApp1 フレームワーク: .NET Framework 4.7.2 プロジェクトが作成されるので、しばらく待つ プロジェクトのファイルは以下に作成された C:\Users\refirio\source\repos\WindowsFormsApp1 プロジェクト作成直後は、以下の内容はカラだった C:\Users\refirio\source\repos\WindowsFormsApp1\WindowsFormsApp1\bin\Debug メニューから「ビルド → ソリューションのビルド」を実行すると、上記 Debug フォルダ内にファイルが作成される メニューから「デバッグ → デバッグなしで開始」を実行すると、プログラムが実行される もしくは Debug フォルダ内に作成された、WindowsFormsApp1.exe をダブルクリックで実行することでもプログラムを実行できる この WindowsFormsApp1.exe を他の環境に渡すことで、同じプログラムを実行できる ■プロジェクトの作成場所 2021/09/16に Visual Studio 2019 で試すと、初期状態では C:\Users\refirio\source\repos\WindowsFormsApp1 にプロジェクトが、 C:\Users\refirio\source\repos\WindowsFormsApp1\WindowsFormsApp1\bin\Debug に実行ファイルが作成された 2021/01/03に Visual Studio 2019 で試すと、初期状態では C:\Users\refirio\VisualStudio\WindowsFormsApp1 にプロジェクトが、 C:\Users\refirio\VisualStudio\WindowsFormsApp1\WindowsFormsApp1\bin\Debug に実行ファイルが作成された 2016/06/30に Visual Studio 2017 で試すと、初期状態では C:\Users\refirio\Documents\Visual Studio 2017\Projects\WindowsFormsApp1 にプロジェクトが、 C:\Users\refirio\Documents\Visual Studio 2017\Projects\WindowsFormsApp1\WindowsFormsApp1\bin\Debug に実行ファイルが作成された ■Gitでのソースコード管理 プロジェクトを開くと、画面右下に「ソース管理に追加」が表示されている これをクリックし、さらに表示された「Git」をクリックすると、「Gitリポジトリの作成」ウインドウが表示される リモートリポジトリとしてGitHubのアカウントが表示される 必要に応じて内容を変更して「作成とプッシュ」をクリックすると、GitHubにリポジトリが作成&プログラムがプッシュされる 完了すると、WindowsFormsApp1 フォルダ内に「.git」「.gitattributes」「.gitignore」が作成される WindowsFormsApp1 をSourcetreeなどで開くと、作業履歴も確認できる。初期状態では以下2件の履歴が作成されていた 2021年9月16日 13:47:20 プロジェクト ファイルを追加します。 2021年9月16日 13:47:19 .gitignore および .gitattributes を追加します。 Visual Studio 2019 のGit連携機能でGitHubを使うメモ - zoe log https://zoe6120.com/2020/10/21/1592/ ■プログラムの調整と動作確認 画面左の「ツールボックス」をクリック 「コモンコントロール → ラベル」をフォーム画面にドラッグ&ドロップ ラベルが配置されるので、ドラッグ&ドロップで位置を調整 画面右下の「プロパティ」で「Text」を「ハローワールド!」に変更する これで再度ビルド&実行すると、ウインドウに「ハローワールド!」と表示されていることが確認できる ■デバッグ 以下のようにすればデバッグメッセージを表示できる
System.Diagnostics.Trace.WriteLine("メッセージ");
■C#でウインドウズアプリケーション(ガジェット)を作成
ツールボックスからWebBrowserを配置し、Form1_Load()内で以下を実行する webBrowser1.Navigate("http://refirio.org/"); NotifyIconを配置し、アイコンを設定する クリック時のイベントを設定する…という作業は無しにするか 後述の「タスクバーに表示しない」も参照 【C# WebBrowser】ブラウザを作成する | ITLAB51.COM http://www.itlab51.com/?p=3747 タスクトレイにアイコンを表示する: .NET Tips: C#, VB.NET https://dobon.net/vb/dotnet/control/showtasktrayicon.html イベントを捕捉する: .NET Tips: C#, VB.NET https://dobon.net/vb/dotnet/beginner/eventhandle.html 最小化されたフォームを元(通常か最大化状態)に戻す: .NET Tips: C#, VB.NET http://dobon.net/vb/dotnet/form/restoreminform.html C# - フォームを常に最前面に表示する http://jeanne.wankuma.com/tips/csharp/form/topmost.html C# - フォームをタスクバーに表示しない http://jeanne.wankuma.com/tips/csharp/form/showintaskbar.html ■タスクバーに表示しない 以下のように指定すると表示されないはずだが、環境によってはおかしなフォームが表示される? 気付いていないだけで、Surfaceでも表示されていた?
this.ShowInTaskbar = false;
以下のようにすればガジェット風になるので、タスクトレイを考えずにこの形式にすればいいかも
this.MinimizeBox = false; this.MaximizeBox = false; this.ShowInTaskbar = false;
■ウインドウ位置を保存 「ソリューションエクスプローラー」でプロジェクト名を右クリックして「プロパティ」を選択 「設定」を選択し、一例だが以下のように設定 名前: WindowLocation 種類: System.Drawing.Point スコープ: ユーザー 値: 200, 100 デザインで対象フォームを選択し、プロパティウインドウで「イベント」を選択 「FormClosing」をダブルクリックするとコードが挿入される もとからあるウインドウ読み込み処理とあわせて、以下のようにプログラムを記述する
private void Form1_Load(object sender, EventArgs e) { // ウィンドウ位置を復元する this.Location = Properties.Settings.Default.WindowLocation; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // ウィンドウ位置を保存する Properties.Settings.Default.WindowLocation = this.Location; Properties.Settings.Default.Save(); }
C#: ウィンドウの位置・サイズ・最大化状態を保存する http://qiita.com/nicklegr/items/faefb804697a395b148d 【ワレコのC#】Formアプリ 前回終了時 ウインドウ位置・サイズを記憶復元 https://www.wareko.jp/blog/c-sharp-form-application-save-restore-window-state-position-size C#メモ ×ボタンがクリックされたことを検知してみる http://www.tetsuyanbo.net/tetsuyanblog/23478 ■スタートアップ 以下にショートカットを作成しておく C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup Tech TIPS:Windows 10で「スタートアップ」にプログラムを登録する http://www.atmarkit.co.jp/ait/articles/1701/18/news029.html 「Windows 10」のスタートアップの場所及びアプリを設定する手順について https://www.japan-secure.com/entry/how_to_set_the_start-up_of_windows_10.html
■Cでコマンドラインアプリケーションを作成
インストーラの vs_community_JPN.exe を実行し、「Modify」を選択し、「Visual C++」にチェックを入れて追加インストールする 「ファイル → 新規作成 → プロジェクト → Visual C++ → Win32 Console Application」
#include <stdio.h> int main() { printf("Hello, world!\n"); return 0; }
■エラー対策 「デバッグ → デバッグなしで開始」で実行できるが、stdafx.h が無いと言われてしまう 「プロジェクト → ◯◯のプロパティ → C/C++ → Precompiled Headers」で「Precompiled Headers」を「Not Using Precompiled Headers」にする sscanfなどを使おうとすると危険だと言われる ソースコードの最初に以下の記述を追加すれば無視できる
#define _CRT_SECURE_NO_WARNINGS 1