マイクロソフトの統合開発環境Visual StudioによるC#アプリケーション開発についての技術的備忘メモです。
C#でWindows32 APIを使用する場合
[DllImport("user32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd);
のような定義が必要になります。
複数のプロジェクトでWindows32 APIを使用する場合、定義をライブラリ化したMicrosoft公式NuGetパッケージMicrosoft.Windows.CsWin32を使うことができます。
使い方は
1.Windows32 APIを使用するプロジェクトにMicrosoft.Windows.CsWin32をインストールします。
2.プロジェクトのルートにNativeMethods.txtを作成します。
3.NativeMethods.txtにプロジェクトで使用するWindows32 APIの関数名を1行ずつ記述します。
SetForegroundWindow IsIconic ShowWindow
4.バックグラウンドで定義が生成されます。
5.使用するC#では
: using Windows.Win32; using Windows.Win32.Foundation; using Windows.Win32.UI.WindowsAndMessaging; : IntPtr hwnd = process.MainWindowHandle; // 最小化されていたら元に戻します if (PInvoke.IsIconic((HWND)hwnd)) { PInvoke.ShowWindow((HWND)hwnd, SHOW_WINDOW_CMD.SW_RESTORE); } // ウィンドウを前面に表示します PInvoke.SetForegroundWindow((HWND)hwnd); :