有人能解释一下为什么
WndProc
下面实现的方法没有收到任何消息?如果我把这个类放在winforms应用程序的下面并传入
那个
应用程序的句柄,
窗口过程
按我的预期接收消息。但是,使用从返回的intptr
GetForegroundWindow()
正如我下面所说,并不能产生相同的结果。(fwiw,我的代码设置为执行
获取ForegroundWindow()
当我的应用程序被隐藏时,我确信intptr引用的是外部应用程序。)我的目标是从外部应用程序监视某些事件。
public class MyNativeWindow : NativeWindow
{
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
private static extern IntPtr GetForegroundWindow();
public MyNativeWindow()
{
this.AssignHandle(GetForegroundWindow());
}
// Never called... I set a breakpoint
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
}
}