Zitat von
Devil589
var
Handle:hwnd;
Window:String;
Window:='TeamSpeak 3';
Handle:=FindWindow(nil,Pchar(Window));
PostMessage(Handle, WM_KEYDOWN, VK_Return, 0); // enter senden
See Ya!
Das kann so nicht funktionieren. Du musst das Handle des Controls suchen (mit FindWindowEx), an das du die Tasten senden möchtest.
Hier ein kleines Beispiel mit Notepad (Handleüberprüfung fehlt):
Code:
const int WM_CHAR = 258;
IntPtr a = FindWindow("Notepad", "Unbenannt - Editor");
IntPtr b = FindWindowEx(a, IntPtr.Zero, "Edit", "");
SendMessage((IntPtr)b, WM_CHAR, (IntPtr)'a', IntPtr.Zero);
Das benötigte Using:
Code:
System.Runtime.InteropServices;
Die benötigten Imports:
Code:
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);