Wie bette ich tabtip.exe in Windows ein

8

Ich versuche, das osk in ein wpf-Fenster oder ein Benutzersteuerelement einzubetten, und ich habe den Code unten gefunden, und es funktioniert für Notepad, aber für tabtip.exe sagt es, dass es keine grafische Schnittstelle hat? ?

WaitForInputIdle ist fehlgeschlagen. Dies könnte daran liegen, dass der Prozess keine grafische Benutzeroberfläche hat.

Ich habe versucht, es für eine Weile schlafen zu lassen, anstatt die waitForInputIdle-Methode aufzurufen, aber es löst eine weitere Ausnahme aus:

Der Prozess wurde beendet, sodass die angeforderten Informationen nicht verfügbar sind.

Aber in meinem Task-Manager kann ich immer noch TabTip.exe laufen sehen.

%Vor%

Bearbeiten: Inspiriert von renes Kommentar, habe ich versucht, das Fenster ptr wie unten zu erhalten und spy ++ verwendet, um zu überprüfen, dass die Adresse, die FindWindow gibt, auf das richtige Fenster zeigt, aber es bewegt sich immer noch nicht:

%Vor%

Edit 2: Mein erster Gedanke war, dass Tab-Tipp nicht in der Größe geändert werden konnte, aber dann bemerkte ich ein Verhalten, wenn ich versuche, das Fenster über zwei verschiedene Bildschirme zu bewegen, es passt sich der Bildschirmgröße an. Ich bin sicher, dass es eine Möglichkeit geben muss, die Größe zu ändern, also habe ich spy ++ (x64) gestartet, um nachzusehen:

Edit 3: Nachdem ich mit user32 api getüftelt habe und keine Fortschritte gemacht habe, habe ich versucht, mit einem Speicherscanner nach der X- und Y-Position des Tabtips zu suchen und sie zu ändern, es wird jedoch nicht aktualisiert, bis ein Repaint ausgelöst wird. Ich frage mich, ob es machbar ist, diesen Weg zu gehen.

    
Mc Kevin 11.08.2016, 08:56
quelle

1 Antwort

1

Können Sie versuchen, Ihren Handle-Code im STA-Thread auszuführen? Ich hatte ein ähnliches Problem mit dem nativen Fenster, das ich mit STA-Thread gelöst hatte.

%Vor%     
Ankit Vijay 16.08.2016 05:03
quelle

Tags und Links