[英]Winform C#, close form on click button from other computers in one project
[英]Execute And Close Other Applications From My Winform C#
這是我的程序的一小部分,我的程序需要從 DataGridView(內容點擊事件)啟動程序,它只是完美地執行該程序,但無法關閉它,因為某些傳入程序的進程名稱與文檔名稱。 我也嘗試獲取 processid,但它拋出以下錯誤(你能否提供一個工作代碼,因為我可以獲得我的 winform 進程的 id,但是我如何從我的程序中獲取外部啟動的應用程序的 processid。我試過它拋出了跟隨錯誤
System.dll 中發生類型為“System.ArgumentException”的未處理異常附加信息:ID 為 16924 的進程未運行。)”
我正在獲取進程 ID 但失敗的代碼如下
private void button1_Click(object sender, EventArgs e)
{
var processid = Process.Start("Calc");
pn =processid.ProcessName;
pid = processid.Id;
}
int pid;
String pn;
private void button2_Click(object sender, EventArgs e)
{
var process1 = Process.GetProcessById(pid);
process1.Kill();
}
虛擬代碼如下。
我已經嘗試過:
private void button1_Click(object sender, EventArgs e)
{
Process.Start("Calc");
}
private void button2_Click(object sender, EventArgs e)
{
foreach (var process in Process.GetProcessesByName("Calc"))
{
process.Kill();
}
}
我的代碼:
private void button1_Click(object sender, EventArgs e)
{
Process.Start("THIS PATH WILL COME FROM DATABASE");
}
private void button2_Click(object sender, EventArgs e)
{
foreach (var process in Process.GetProcessesByName("PROCESS NAME WHICH MY PROGRAM STARTED"))
{
process.Kill();
}
}
當您啟動流程時,獲取流程的Id
並存儲它。 然后,您可以通過 id 獲取進程以終止它。 這不僅可以確保您不需要知道進程的名稱(以防它與啟動它的路徑不同),而且可以確保您在運行多個實例時殺死正確的實例,其中一些沒有啟動通過你的程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.