一個EXE,可以被多次打開,缺只有一個行程,如何通過C#獲取某個程式被關掉了。。。
uj5u.com熱心網友回復:
using System.Diagnostics;
Process[] processes = Process.GetProcesses();
foreach(Process p in processes)
{
Console.WriteLine(p.ProcessName);
p.Kill(); //關閉對應名稱的行程
}
Process.Start("");//要開啟的行程 括號內為絕對路徑
uj5u.com熱心網友回復:
如2樓,在回圈體類判斷是否有開啟的行程。沒有,表示被關閉了。uj5u.com熱心網友回復:
不是啦,我要的是得知有個程式被關掉了,有個EXE,可以打開運行多次,但是只有一個行程,我需要知道哪幾個被關掉了
uj5u.com熱心網友回復:
行程一直開著,只是EXE可以打開多個表單,我要的是哪個表單被關掉了,無論開幾個表單,他們都只有一個行程uj5u.com熱心網友回復:
啊噢,貌似有點麻煩,要不,換個思路,你的行程,只開1個,再開,就報警提示,不讓開,如何?uj5u.com熱心網友回復:
你把所有的表單設定為全域變數,只開啟這1個。然后,通過這個全域變數,判斷該表單有沒有開啟。uj5u.com熱心網友回復:
比如你再Program.cs定義public static Query WindowQuery;
然后,你在其他視窗啟動該視窗
Program.WindowQuery = new Query();
Program.WindowQuery.ShowDialog();
那么判斷該視窗是否有關閉,為null表示關閉
if(Program.WindowCloseQuery==null)
uj5u.com熱心網友回復:
被關掉了?exe 被關掉有兩種情況:1是主動關閉,例如收到作業系統通知,自己正常結束;
2是強行終止,即由作業系統 Kill 掉;
第一種情況可控(類似自殺),可以在代碼中處理,一旦結束就寫個日志什么的(自殺前留遺言);第二種就不可控了,類似他殺,你沒機會寫留言。
uj5u.com熱心網友回復:
類似Application.ApplicationExit事件。uj5u.com熱心網友回復:
這只能標明他做了互斥操作
至于你說的想判定他關了幾個,我們說對無需判定,對方互斥操作寫在program.cs,他啥事也沒干,只是一個互斥。我們判定他沒有意義,這是無效命題
表單和行程不是一個東西,如果是這要求,建議掛hook,攔截監聽wm_close訊息
uj5u.com熱心網友回復:
我是調取第三方軟體,我想知道第三方軟體啥時候被關掉了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/85068.html
標籤:C#
