Tasten an Datei schicken funktioniert nicht.Wo liegt der Fehler?
-
Hallo
Ich benutze folgenden Quellcode um an die Textdatei Test ein E zu schicken
Das mach ich mit folgenden Quellcode:
#include<windows.h>
#include<iostream>
using namespace std;int main()
{
SetWindowText ( FindWindow(0,"Test - Editor"),"TEST");
Sleep(5000);
HWND hWnd=FindWindow(NULL,"TEST");
PostMessage(hWnd, WM_KEYDOWN,0x45,0x45);
PostMessage(hWnd, WM_KEYUP,0x45,0x45);
}Der funktioniert leider nicht
Die Datei wird in TEST umbenannt aber es wird kein E gesendet
Weiss jemand was dadran falsch ist?
-
Tastatureingaben lassen sich so nicht simulieren.
Verwende SendInput!
-
Martin Richter schrieb:
Tastatureingaben lassen sich so nicht simulieren.
Kann man so nicht sagen... Das Textfeld im Editor ist ein Edit-Feld und dem kannste ne WM_CHAR-Nachricht schicken. Darauf müsste es eigentlich reagieren. Inwiefern man damit ne Tastatureingabe simuliert, ist fraglich, aber dem Editor wird auf jeden Fall vorgegauckelt, dass ne Taste gedrückt wurde...
@gdsggsfsd:
Das Edit-Feld findest du mit FindWindowEx, Childklasse ist "EDIT".
-
Wie macht man das mit Sendinput?
Bin aus Msdn leider nicht schlau geworden
Kann mir jemand ne Funktion geben die Beispielweise mit Sendinput "E" drückt?
-
mhh
-
Tasten + Umschlag + Briefmarke + Adresse der Datei -> In den Briefkasten
Den Rest macht die Post
-
KEYBDINPUT kbinput; INPUT input; input.type = INPUT_KEYBOARD; input.ki.wVk = //... füll die ganze ki struct aus ... s. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputstructures/keybdinput.asp SendInput(1, &input, int cbSize);aja und dein Code:
#include <windows.h> #include <iostream> int main() { ::HWND hEditorWnd = ::FindWindow(0, _T("Test - Editor")); if (hEditorWnd == NULL) return -1; ::HWND hEditorEditWnd = ::FindWindowEx(hEditorWnd, NULL, _T("Edit"), NULL); if (hEditorEditWnd == NULL) return -1; ::SendMessage(WM_CHAR, // füll das selber aus! std::cout << "Send WM_CHAR!" << std::endl; return 0; }Referenzen:
FindWindowEx
FindWindow
WM_CHAR
-
Erklärbär schrieb:
Tasten + Umschlag + Briefmarke + Adresse der Datei -> In den Briefkasten
Den Rest macht die Postdanke sehr