winformからボタンをクリックして実行する簡単なNode.jsプログラムがありますが、正常に動作しますが、Node.jsプログラムを終了し、別のボタンクリックでコマンドプロンプトを閉じる必要があります.どうすればこれを達成できますか?
乾杯ジーヴ
あなたがプロセスを開始すると、タイプのオブジェクトがありますprocess
。このオブジェクトはkill
、プロセスをすぐに終了するものをサポートしています。
更新されたコード
Public Class Form1
Dim MyProcess As Process
Private Sub btnStartPrcoess_Click(sender As Object, e As EventArgs) Handles btnStartPrcoess.Click
If MyProcess Is Nothing Then
MyProcess = Process.Start("cmd.exe", "arguments")
End If
End Sub
Private Sub btnKillProcess_Click(sender As Object, e As EventArgs) Handles btnKillProcess.Click
If MyProcess IsNot Nothing Then
MyProcess.Kill()
MyProcess.Close()
MyProcess = Nothing
End If
End Sub
End Class
別のメソッドからプロセスを終了する必要がある場合は、もちろんクラス レベルでプロセス変数を宣言する必要があります。またProcess.Start()
、プロセス型の戻り値もあります。そのため、プロセスを検索する必要はありません - あなたはすでにそれを知っています!
アップデート
次のようなことをするのは、多かれ少なかれナンセンスです。
MyProcess = Process.Start("cmd.exe", "/k notepad.exe")
これは単に cmd.exe を開始し、次に notepad.exe を開始するためです。そしてもちろん、Process
現在では、notepad.exe ではなく cmd.exe を「ポイント」しています。メモ帳を実行したい場合は、直接起動するのが明らかに最善の解決策です。
MyProcess = Process.Start("notepad.exe", "arguments for notepad, if needed")
Process.Start("cmd.exe", "/k C:\Users\PROG21\Desktop\chat\exit.exe")
プロセスの開始に使用しました。したがって、グローバルProcess
変数を宣言して試してください。
Process exeProcess;
スタートボタンクリック時:
exeProcess = Process.Start("cmd.exe", "/k C:\Users\PROG21\Desktop\chat\exit.exe");
停止ボタンをクリックすると;
exeProcess.Kill();