Windows OSのシステムでアプリケーションを終了するには、Win32 APIを使用する必要があります。Win32 APIを使用すると、Windowsメッセージを使用して他のアプリケーションを制御できます。この場合は、Win32 APIを使用してアプリケーションのウィンドウを見つけ、WM_QUITやWM_CLOSEのようなメッセージを閉じたいアプリケーションに送信する必要があります。
これを行うには、ライブラリ関数呼び出しノードを使用してuser32.dllを2回呼び出す必要があります。作成手順は、以下のとおりです。
- ブロックダイアグラムにライブラリ関数呼び出しノードを配置してダブルクリックし、ライブラリ名またはパスのファイル参照で、C:\Windows\System32にあるuser32.dllを選択します。呼び出し規約の項目でstdcall (WINAPI)を選択します。
- OKボタンをクリックしてダイアログボックスを閉じ、ライブラリ関数呼び出しノードをコピーして2つにします。
- 最初のライブラリ関数呼び出しノードをダブルクリックして、関数名のドロップダウンメニューからFindWindowAを選択し、下記の3つのパラメータを設定します。
- hWnd: 戻り値、タイプ = 数値、データタイプ = 符号なし32ビット整数
- lpszClassName: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス = 値
- lpszWindowName: タイプ = 文字列、定数、文字列形式 = C文字列ポインタ、最小サイズ = <None>
- 2番目のライブラリ関数呼び出しノードをダブルクリックして、関数名のドロップダウンメニューからSendMessageAを選択し、下記の4つのパラメータを設定します。
- hWnd: 戻り値、タイプ = 数値、データタイプ = 符号なし32ビット整数
- uMsg: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス = 値
- wParam: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス = 値
- lParam: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス = 値
- これで、定数0をlpszClassNameに、そして終了したいアプリケーションの名前をFindWindow関数のlpszWindowNameに渡すようにします。
FindWindow関数の戻り値をSendMessage関数のhWnd入力に配線し、10進数で16、または16進数で10の値をuMsgパラメータに、最後の2つのパラメータwParamとlParamに定数0を配線します。
コードを使用するには、閉じたいアプリケーションの名前をアプリケーション名制御器に入力します。 たとえば、LabVIEWを閉じるにはLabVIEWと入力します。