2011-05-11 103 views
1

我试图将消息发送到WPF应用程序有它最小化,然后恢复发送信息给WPF应用程序

我做

//Import the SetForeground API to activate it 
[DllImportAttribute("User32.dll")] 
private static extern IntPtr SetForegroundWindow(int hWnd); 

[DllImportAttribute("User32.dll")] 
//private static extern IntPtr SendMessage(int hWnd, int Msg, bool wParam, int lParam); 
private static extern IntPtr SendMessage(int hWnd, uint Msg, UIntPtr wParam, IntPtr lParam); 
.... 


SetForegroundWindow(hWnd); //Activate it 

//in here I minimize the window manually 
SendMessage(hWnd, 0x0018, (UIntPtr)0, (IntPtr)0); //trying to restore 

它不工作

任何想法

+0

你用过间谍++检查窗户是否接收消息? – dlev 2011-05-11 16:24:51

+0

是的,我有,我看到它... - 它说WM_SHOWWINDOW fshow:false fuStatus:0我以为我可能有一个参数错了,但我希望它会尽量减少它不会 – Jeff 2011-05-11 16:32:00

回答

0

你可能会更好的导入ShowWindow,而不仅仅是SendMessage:

[DllImportAttribute("User32.dll")] 
private static extern IntPtr ShowWindow(int hWnd, int showFlag); 

public const int SW_MINIMIZE = 0x06; 
pubilc const int SW_RESTORE = 0x09; 
public const int SW_FORCEMINIMIZE = 0x0B; 

你应该那么就可以说ShowWindow(hWnd, SW_MINIMIZE);