NativeWindow WndProc не получает сообщения
Может ли кто-то пролить свет на то, почему мой WndProc
метод, реализованный ниже, не получает никаких сообщений? Если я помещу этот класс ниже в приложение WinForms и передам дескриптор этого приложения, WndProc
получает сообщения, как я ожидал. Однако, используя IntPtr, возвращенный из GetForegroundWindow()
как я ниже, не дает таких же результатов. (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 ответ
Решение