Ich habe wirklich Mühe zu verstehen, wie PostMessage funktioniert. Ich bin von einem Web-Entwickler-Hintergrund, also ist alles sehr fremd zu mir. Ich versuche, einen einzelnen "a" Zeichen an eine Anwendung von Drittanbietern zu senden. Ich habe Spy ++ verwendet, um die PostMessage
(Params unten) erforderlich zu bekommen, aber ich kann keinen Sinn machen, wie man Lparam und Wparam benutzt.Wie verwende ich diese PostMessage Lparam und Wparam?
Das ist was ich bisher habe. Ich gehe davon aus 00000041 (und die anderen von Spy ++) ist eigentlich hexadezimal und ich bin richtig darin 0x in der Schriftart davon zu setzen?
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = 0x101;
const Int32 WM_CHAR = 0x0102;
PostMessage(WindowHandle, WM_KEYDOWN, (IntPtr)(0x00000041), (IntPtr)(0x001E0001));
PostMessage(WindowHandle, WM_CHAR, (IntPtr)(0x00000061), (IntPtr)(0x001E0001));
PostMessage(WindowHandle, WM_KEYUP, (IntPtr)(0x00000041), (IntPtr)(0xC01E0001));
Das hat mir einen algorithmischen Überlauf gibt ...
Und bevor mir jemand sagt sendinput
zu verwenden ist dies für ein Fenster nicht im Fokus :-P
Entschuldigung sollte von angegeben werden. PostMessage (Fenstergriff, WM_KEYUP, (IntPtr) (0x00000061), (IntPtr) (0xC01E0001)); – jamie
Ist '0xC01E0001' intentional,' 0xC' anstelle von '0x0' in der letzten PostMessage? – AEonAX