LabVIEWでWindowsアプリケーションを終了する

更新しました Jul 30, 2019

使用製品

Software

  • LabVIEW Full

Operating System

  • Windows

問題

LabVIEWを使用してWindowsアプリケーションを終了したいです。これを行うにはどうすればよいですか?

解決策

Windows OSのシステムでアプリケーションを終了するには、Win32 APIを使用する必要があります。Win32 APIを使用すると、Windowsメッセージを使用して他のアプリケーションを制御できます。この場合は、Win32 APIを使用してアプリケーションのウィンドウを見つけ、WM_QUITWM_CLOSEのようなメッセージを閉じたいアプリケーションに送信する必要があります。
 

これを行うには、ライブラリ関数呼び出しノードを使用してuser32.dllを2回呼び出す必要があります。作成手順は、以下のとおりです。
 

  1. ブロックダイアグラムにライブラリ関数呼び出しノードを配置してダブルクリックし、ライブラリ名またはパスのファイル参照で、C:\Windows\System32にあるuser32.dllを選択します。呼び出し規約の項目でstdcall (WINAPI)を選択します。
     
  2. OKボタンをクリックしてダイアログボックスを閉じ、ライブラリ関数呼び出しノードをコピーして2つにします。
     
  3. 最初のライブラリ関数呼び出しノードをダブルクリックして、関数名のドロップダウンメニューからFindWindowAを選択し、下記の3つのパラメータを設定します。
    • hWnd: 戻り値、タイプ = 数値、データタイプ = 符号なし32ビット整数
    • lpszClassName: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス =
    • lpszWindowName: タイプ = 文字列定数、文字列形式 = C文字列ポインタ、最小サイズ = <None>
       
  4. 2番目のライブラリ関数呼び出しノードをダブルクリックして、関数名のドロップダウンメニューからSendMessageAを選択し、下記の4つのパラメータを設定します。
    • hWnd: 戻り値、タイプ = 数値、データタイプ = 符号なし32ビット整数
    • uMsg: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス =
    • wParam: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス =
    • lParam: タイプ = 数値、データタイプ = 符号付き32ビット整数、パス =
       
  5. これで、定数0をlpszClassNameに、そして終了したいアプリケーションの名前をFindWindow関数のlpszWindowNameに渡すようにします。

    FindWindow関数の戻り値をSendMessage関数のhWnd入力に配線し、10進数で16、または16進数で10の値をuMsgパラメータに、最後の2つのパラメータwParamとlParamに定数0を配線します。


コードを使用するには、閉じたいアプリケーションの名前をアプリケーション名制御器に入力します。 たとえば、LabVIEWを閉じるにはLabVIEWと入力します。


この記事はお役に立ちましたか?

いいえ