2012-03-23 56 views
0

我在WPF運行中有一個應用程序。我希望這樣,當在這個應用程序中點擊一個按鈕時,另一個應用程序打開,其窗口最大化。但是,我不希望我的第一個應用程序停下來等待。我希望兩者都是獨立開放和運行的。在另一個應用程序中打開一個應用程序的.exe窗口

當再次點擊該按鈕時,如果應用程序被最小化,應用程序將被最大化。如果不是,它會再次打開。

它怎麼可能使用C#?我試過以下內容:

Process process = Process.GetProcesses().FirstOrDefault(f => f.ProcessName.Contains("Analysis")); 

ShowWindow((process ?? Process.Start("..\\..\\..\\MS Analysis\\bin\\Debug\\Chemtech.RT.MS.Analysis.exe")).MainWindowHandle.ToInt32(), SW_MAXIMIZE); 

但是,即使該過程確實開始,該窗口仍未打開。

+0

你可以顯示ShowWindow的聲明嗎? ...和SW_MAXIMIZE ... – Steve 2012-03-23 21:15:03

+0

[DllImport(「User32」)] private static extern int ShowWindow(int hwnd,int nCmdShow); – jpnavarini 2012-03-23 21:20:23

+0

SW_MAXIMIZE = 3 – jpnavarini 2012-03-23 21:20:48

回答

0
var hwnd = ..; 
ShowWindow(hwnd, SW_MAXIMIZE); 
BringWindowToTop(hwnd); 

[DllImport("user32.dll", SetLastError=true)] 
static extern bool BringWindowToTop(IntPtr hWnd) 
相關問題