2010-02-02 74 views
2

我在使用process.info,process start();在c#.net中調用exe按鈕單擊,但每次單擊該按鈕時,都會調用exe並在任務欄上打開重複文件。我想只是最大化已經在任務欄上的exe文件。只能調用一次exe的過程

我面臨的問題是,它是一次又一次打開按鈕單擊相同的文件。 有沒有什麼辦法,它可以打開一個exe只有一次,並在按鈕點擊它可以最大化exe文件,如果已經打開,而不是重複條目?

回答

1

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