NativeWindow WndProc没有收到消息

时间:2010-05-24 05:19:09

标签: c# handle nativewindow

有人可以解释为什么我在下面实施的WndProc方法没有收到任何消息吗?如果我把这个类放在WinForms应用程序中并传入那个应用程序的句柄,WndProc会收到我期望的消息。但是,如下所示,使用从GetForegroundWindow()返回的IntPtr不会产生相同的结果。 (FWIW,我的代码设置为在我的应用程序被隐藏时执行GetForegroundWindow(),所以我确定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);
    }
}

1 个答案:

答案 0 :(得分:3)

您将不会收到其他进程的消息。