代码之家  ›  专栏  ›  技术社区  ›  Nick Spreitzer

NativeWindow WndProc未接收消息

  •  2
  • Nick Spreitzer  · 技术社区  · 14 年前

    有人能解释一下为什么 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);
        }
    }
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   deerchao    14 年前

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

    推荐文章