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 ответ

Решение

Вы не будете получать сообщения другого процесса.

Другие вопросы по тегам