2012-12-28 163 views
1

我有一個簡單的Node.js程序,通過從winform單擊按鈕執行,工作正常,但我需要終止Node.js程序並關閉另一個按鈕單擊命令提示符。我怎樣才能做到這一點?從窗體關閉命令窗口

乾杯 Jeev

+0

你嘗試過什麼嗎? –

+0

開始一個進程我已經使用Process.Start(「cmd.exe」,「/ K的C:\用戶\ PROG21 \桌面\聊天\ exit.exe」)我相信關閉功能將是這樣的,但不知道如何實現:( – jeev

+0

這可以幫助:http://stackoverflow.com/questions/426573/how-do-you-kill-a-process-for-a-particular-user-in-net-c –

回答

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()也具有類型進程的返回值。所以不需要搜索這個過程 - 你已經知道了!

UPDATE

這或多或少廢話,做這樣的事情:

MyProcess = Process.Start("cmd.exe", "/k notepad.exe") 

因爲它只是開始,然後開始的notepad.exe的CMD.EXE。當然Process現在「指向」cmd.exe,而不是notepad.exe。如果你想擁有記事本運行,這顯然是直接啓動它的最佳解決方案:

MyProcess = Process.Start("notepad.exe", "arguments for notepad, if needed") 
+0

其實在1按鈕上單擊該過程已開始,現在開始另一個按鈕點擊它應該殺死。我嘗試用於關閉按鈕Private Sub Button2_Click(ByVal發件人爲System.Object,ByVal e爲System.EventArgs)處理Button2.Click作爲Process()= Dim System.Diagnostics.Process.GetProcessesByName (「exit.exe」)對於每個p作爲進程在ps p。Kill() Next End Sub – jeev

+0

我該如何指定進程名?它是「cmd.exe」,「/ K C:\用戶\ PROG21 \桌面\聊天\ exit.exe」或只是exit.exe? – jeev

+0

再次說明:無需搜索過程!你已經擁有了你需要的一切! – igrimpe

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();