Machen Sie ein Formular nicht Isoliertes in C#

Ich bin zu wollen schreiben, eine virtuelle Tastatur, wie die windows-Bildschirmtastatur für touchscreen-pcs.
Aber ich habe problem mit meiner virtuellen Tastatur stehlen des Fokus von der Anwendung verwendet wird. Die windows-Bildschirmtastatur erhaltet den Fokus auf die aktuelle Anwendung, auch wenn der Benutzer darauf klickt. Gibt es eine Möglichkeit, das gleiche zu tun, die mit windows forms in C#?

Das einzige, was ich jetzt tun können, ist senden Sie eine Tastatur Ereignis zu einer especific Anwendung wie Editor den folgenden code). Wenn ich könnte die form nicht Isoliertes, ich könnte das aktuell fokussierte Fenster mit GetForegroundWindow.

[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);


[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

private void button1_Click(object sender, EventArgs e)
{
    IntPtr calculatorHandle = FindWindow("notepad", null);
    SetForegroundWindow(calculatorHandle);
    SendKeys.SendWait("111");
}

Gibt es eine Möglichkeit dies getan werden kann? Irgendwelche Vorschläge für einen besseren Weg, um ein Formular senden von Tastatur-Ereignisse an die Anwendung verwendet wird?

Dank!!

InformationsquelleAutor Jandex | 2010-03-11
Schreibe einen Kommentar