Ich versuchte zu überprüfen, dass Nachrichten mit Spy ++ (unter Windows 7) an mein Fenster gesendet wurden, aber ich versuchte versehentlich ein Konsolenfenster auszuspionieren, das mein Programm für die Debugausgabe verwendete. Spion ++ hat mich sofort benachrichtigt, dass "das angegebene Fenster nicht ausspioniert werden kann. Windows erlaubt keinen Zugriff auf den Nachrichtenstrom für dieses Fenster."Warum Spy ++ mit Konsolenfenstern fehlschlägt
Während Spy ++ andere Informationen über das Fenster korrekt sammelt (e.x. Name, Stil, Klassenname), kann es die Nachrichtenwarteschlange nicht verarbeiten. Warum ist das? Und gibt es aus morbider Neugier eine Möglichkeit, zu verhindern, dass Spy ++ mit der Windows API auf die Nachrichtenwarteschlange meines eigenen benutzerdefinierten Fensters zugreift?
Sie haben meine Neugier geweckt. Nachdem ich mehr darüber auf Wikipedia gelesen habe, entdeckte ich den sekundären Mechanismus, conhost.exe (erstellt von CSRSS unter dem aktuellen Benutzerkonto) wird verwendet, um das Konsolenfenster anzuzeigen. Scheint so, als wäre ein unter dem Benutzerkonto laufender Vorgang faires Spiel zu Spy ++, aber wiederum wird das Desktop-Fenster auch nicht ausspioniert. Ist es die Methode, in der CreateProcess aufgerufen wird, die verhindert, dass Spy ++ funktioniert? –
@BrianDavis: Das Desktop-Fenster wird nicht speziell behandelt, und Spy ++ kann zur Überwachung von Nachrichten verwendet werden. Verwenden Sie möglicherweise Spy ++ mit der falschen Bitanzahl (z. B. 32-Bit-Spy ++ auf einem 64-Bit-Betriebssystem)? – IInspectable