我在使用process.info,process start();在c#.net中調用exe按鈕單擊,但每次單擊該按鈕時,都會調用exe並在任務欄上打開重複文件。我想只是最大化已經在任務欄上的exe文件。只能調用一次exe的過程
我面臨的問題是,它是一次又一次打開按鈕單擊相同的文件。 有沒有什麼辦法,它可以打開一個exe只有一次,並在按鈕點擊它可以最大化exe文件,如果已經打開,而不是重複條目?
我在使用process.info,process start();在c#.net中調用exe按鈕單擊,但每次單擊該按鈕時,都會調用exe並在任務欄上打開重複文件。我想只是最大化已經在任務欄上的exe文件。只能調用一次exe的過程
我面臨的問題是,它是一次又一次打開按鈕單擊相同的文件。 有沒有什麼辦法,它可以打開一個exe只有一次,並在按鈕點擊它可以最大化exe文件,如果已經打開,而不是重複條目?
Process.Start()
返回Process
對象。你可以做的是有一個類變量(例如Process startedProcess;
),該按鈕被點擊時初始化。如果該變量爲null,表示該進程尚未啓動,並且該應用程序應該啓動,否則它已經在運行,我們應該忽略它。
這是一個基本的例子:
Process startedProcess = null;
public void button1_Clicked(object sender, EventArgs e)
{
if (startedProcess == null)
startedProcess = Process.Start("path\\to\\process.exe");
}
如果您正在尋找自動切換到的情況下,該窗口的應用程序已經運行,.NET沒有任何內置的方法本身做到這一點。您將需要從user32.dll到DLLImports。一個例子可以在這個頁面的評論中找到:http://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx
感謝您的回答 – zoya 2010-02-02 06:17:02
是要在按鈕單擊事件上運行的代碼?? – zoya 2010-02-02 06:27:30
這給IsFirstInstance()上的錯誤無法聲明靜態類上的instace成員 – zoya 2010-02-02 06:32:50