NativeWindow WndProc не получает сообщения - PullRequest
2 голосов
/ 24 мая 2010

Может ли кто-нибудь пролить свет на то, почему мой метод 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 Ответ

3 голосов
/ 24 мая 2010

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

...