PostMessage WM_KEYDOWN senden multiplizieren Schlüssel?
Habe ich diesen code:
public static void Next()
{
Process[] processes = Process.GetProcessesByName("test");
foreach (Process proc in processes)
PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_RIGHT, 0);
}
Dieser code verschickt den Pfeil nach Rechts-Taste möchte ich gesendet ALT+STRG+nach-RECHTS habe ich versucht, dieses:
public static void Forward()
{
Process[] processes = Process.GetProcessesByName("test");
foreach (Process proc in processes)
{
PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_CONTROL, 0);
PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_ALT, 0);
PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_RIGHT, 0);
}
}
Aber es funktioniert nicht...
Irgendwelche Ideen?
InformationsquelleAutor Danpe | 2011-10-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können nicht simulieren von Tastatur-Eingaben mit PostMessage, zumindest nicht zuverlässig verwenden SendInput statt.
Ja, habe ich, vielen Dank
Ich habe versucht, das Verständnis der Beispiel auf SendInput ohne Erfolg.. ich brauche die Keys zu verschicken einer nicht fokussierten Prozess, ist dies auf meinem PC, und nicht aus meiner Tastatur, von der eine andere Veranstaltung, like-button klicken.
wenn das Fenster nicht fokussiert dann SendInput nicht' arbeiten. Leider keine zuverlässige Möglichkeit zum simulieren von Eingaben auf Windows.
Nein, es gibt keinen workaround - vielleicht UI-Automation (wenn die client-app unterstützt) - - msdn.microsoft.com/en-us/library/ms747327.aspx
InformationsquelleAutor shf301
Habe ich versucht, dieses so viele Male und es ist hit oder verpassen, wenn es funktioniert. Was Sie tun möchten, ist zu versuchen, zu verwenden, WM_SYSKEYDOWN statt WM_KEYDOWN für "system" - Typ-Schlüssel. Dies bedeutet auch, Sie haben zu verwenden WM_SYSKEYUP. So etwas wie dies funktionieren könnte:
Update:
Ich habe es nur für die Simulation von Tastatureingaben für die einzelnen Tasten, es funktioniert Super auch für minimierten Anwendungen :). Wenn Sie es als eine Kombination der Schlüssel für die "shift" - Staaten ist, wo es ist hit oder miss. Das problem ist, die meisten windows-Anwendungen haben die Kontrolle und jedes Steuerelement hat es am Griff so senden Sie eine Taste, um das Fenster nicht den gewünschten Effekt, Sie zu senden, ALT+S, um das "Menü" handle, um eine Datei zu speichern (etwa Notepad), die auch funktioniert.
Ja, es wird nicht gehen. Verwenden SendInput, oder, noch besser, die UI-Automatisierung.
InformationsquelleAutor Erik Philips