1

winformからボタンをクリックして実行する簡単なNode.jsプログラムがありますが、正常に動作しますが、Node.jsプログラムを終了し、別のボタンクリックでコマンドプロンプトを閉じる必要があります.どうすればこれを達成できますか?

乾杯ジーヴ

4

2 に答える 2

2

あなたがプロセスを開始すると、タイプのオブジェクトがあります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")
于 2012-12-28T06:57:20.713 に答える
2

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();
于 2012-12-28T07:17:04.663 に答える