Anwendungen fernsteuern??
-
Ich denke mal, du musst zuerst noch ein Druck auf die Umschalttaste simulieren und dann nicht vergessen die ganzen Tasten auch wieder zu löschen (KEYEVENTF_KEYUP im 3. Parameter setzen)
-
Hey cool ich habs hingekriegt:
HWND notepad = FindWindow (NULL, "Unbenannt - Editor"); SetForegroundWindow(notepad); ShowWindow(notepad, SW_SHOWNORMAL); //SetWindowPos(notepad, HWND_TOP, NULL, NULL, NULL, NULL, SWP_NOMOVE | SWP_NOSIZE); //pressKey(41); keybd_event( VK_SHIFT, 0, 0, 0); keybd_event( 'H', 0, 0, 0); keybd_event( 'H', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'A', 0, 0, 0); keybd_event( 'A', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'L', 0, 0, 0); keybd_event( 'L', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'L', 0, 0, 0); keybd_event( 'L', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'O', 0, 0, 0); keybd_event( 'O', 0, KEYEVENTF_KEYUP, 0); keybd_event( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Sogar wenn die Anwendung minimiert ist funktioniert's
bye,
~cp code_pilot
-
code_pilot schrieb:
Hey cool ich habs hingekriegt:
HWND notepad = FindWindow (NULL, "Unbenannt - Editor"); SetForegroundWindow(notepad); ShowWindow(notepad, SW_SHOWNORMAL); //SetWindowPos(notepad, HWND_TOP, NULL, NULL, NULL, NULL, SWP_NOMOVE | SWP_NOSIZE); //pressKey(41); keybd_event( VK_SHIFT, 0, 0, 0); keybd_event( 'H', 0, 0, 0); keybd_event( 'H', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'A', 0, 0, 0); keybd_event( 'A', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'L', 0, 0, 0); keybd_event( 'L', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'L', 0, 0, 0); keybd_event( 'L', 0, KEYEVENTF_KEYUP, 0); keybd_event( 'O', 0, 0, 0); keybd_event( 'O', 0, KEYEVENTF_KEYUP, 0); keybd_event( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Sogar wenn die Anwendung minimiert ist funktioniert's
bye,
~cp code_pilotHab geholfen
-
Toll Marco, toll!
Also, nur zur Info: Der nette Herr heisst Marco W, ist 24 Jahre alt, kommt aus Dortmund und gibt mach hier immer voll ein' auf Anonym. Das macht dem richtig Spass ... stimmts Marco??
Ach ja nochwas: Man soll keine Zitate machen, wenn man den gesamten Beitrag übernimmt *grummel* ...
~cp
-
<font face=verdana size=20>LOL<font> <--- *g geht eh net, wär kewl
-
Hi!
Ok, bei funzt jetzt alles soweit. Allerdings habe ich noch eine Frage: Wie sende ich einen Punkt (.)???? Weil ich finde da nirgends unter http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp einen Punkt, oder den Keycode dafür. Gibt es da eine Lösung???Gruss,
~cp code_pilot
-
Bei mir ist es VK_OEM_PERIOD.
Es ist aber wohl besser, wenn du das zur Laufzeit mit VkKeyScanEx ermittelst.
-
Hallo, ich bins mal wieder
Ich habe noch ein Problem bzgl. der Fernsteuerung von Anwendungen. Und zwar folgendes: Wie kann ich die Buchstaben ? \ ~ # ' " % $ § ² ³ ! = ( { } ) senden, und dies in einem Programm das wirklich in jeder Sprache (also US Tastatur, deutsche Tastatur, spanische Tastatur, französische Tastatur usw., also Weltweit) funktioniert. Weil im deutschen muss man ja ALT GR und ß drücken, um ein "\" zu erhalten, im amerikanischem drückt man nur die (im deutschen) "-"-Taste, und erhält das Backslash, ohne ALT GR.
Gibt es da irgendeine gute (und möglichst einfache) Möglichkeit, dies mit keybd_event() zu lösen?Danke & Gruss,
~cp code_pilot :p
-
Uuuppps!
Ich mal wieder sehr schlau war, und haben geguckt in SUCHEHier die Lösung:
short sVal = VkKeyScan(ch); bool shift; BYTE bKey=(BYTE)(sVal); sVal=(BYTE)(sVal>>8); if((sVal & 0x01) == 0x01) shift=TRUE; if(shift) keybd_event(VK_SHIFT,0,0,0); keybd_event(bKey,0,0,0); keybd_event(bKey,0,KEYEVENTF_KEYUP,0); if(shift) keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
Und es gate
~cp
-
habe mir mal nen brute force geschrieben, der arbeitet so ähnlich - bezüglich des schreiben - wie du es haben willst.
bei mir muss man das so machen:
du drückst auf'n button, und hällst die maustaste gedrückt gehst über das eingabe feld und läst los.
dann habe ich die koordinaten (getcursorpos()) und kann mit windowfrompoint() das HWND bekommen.
dann schreibe ich einfach mit setwindowtext den text rein, den ich haben will.
-
anhang:
ist bestimmt etwas eleganter und schicker als das mit dem keyup & keydown, sendmessage, bla, irgendwas. weil wenn du zuviel oder zu schnell schreibst ist der hook-speicher(oder wie das ding auch immer heißt voll) voll und dein rechner beept wie bekloppt.
ps:
tastendrücken geht am besten mit sendmessage und als msg bm_click
Bsp: SendMessage (hwnd, BM_CLICK, 0, 0);
-
hi, ja danke aber ich will Programme fernsteuern, also auch Tastenkombinationen wie z.B. ALT + D usw. senden, um eine Menü zu öffnen. Da kann man nicht SetWindowText() machen
Gruss,
~cp code_pilot