Mause und Tastatureingaben
-
Hallo, habe folgende Probleme:
1. Wie lasse ich im API die Maus auf einen bestimmten Punkt(x,y) springen?
2. Wie lasse ich mein Programm an ein bestimmtes Fenster mit einem HWND Tastatureingaben senden,sodass diese Eingabe auf die Art des aktiven Programmes ausgewertet wird. ?
3. Wie lasse ich die Maus klicken?
4. Wie finde ich den Handle des Fenster raus welches gerade fokusiert ist.
5. Wie lasse ich ein Fenster fokussieren?(weniger wichtig)
Ich glaube ihr wisst was ich meine. Danke für eure Hilfe!
-
ganz einfach...
1. zu google.de gehen
2. "autoit download" eintippen
3. autoit downloaden
4. autoit installieren
5. 10min über syntax lesen
6. dein prog schreiben
7. zu ner exe kompilieren
8. freuen, dass es funzt :xmas1: :xmas2:
-
Okay danke ! <freu> :xmas1: :xmas2:
Ja das ist ja nur ein Programm das das hier macht , aber ich will Code
.
-
1.) SetCursorPos
2.) SendMessage/SendInput/keybd_event/mouse_event
3.) siehe 2.)
4.) FindWindow
5.) SetWindowPosschirrmie
-
gut danke wie lasse ich mit SendMessage() einen tastendruck senden?
Was muss ich für ein Flag beim 2. Parameter setzen?
Ich habe eine Zusammenfassung und da wird nur WM_KEYDOWN und WM_KEYUP aufgeführt wie kann ich den Konstanten Parameter geben?fettes DANKE
-
C-Chris schrieb:
Ich habe eine Zusammenfassung und da wird nur WM_KEYDOWN und WM_KEYUP aufgeführt wie kann ich den Konstanten Parameter geben?
fettes DANKE
Hier eine Liste mit den Virtual Key-Codes
http://msdn2.microsoft.com/en-us/library/ms645540.aspxlg.sikayak
-
Okay danke.
Also für ein "a" schreibe ich dannSendMesage(hWnd,41,...);oder:
SendMessage(hWnd,(41),...);mfg Chris
P.S.: Probiere es mal aus.

-
C-Chris schrieb:
Also für ein "a" schreibe ich dann
SendMesage(hWnd,41,...);oder:
SendMessage(hWnd,(41),...);Nein!
-
Nope, das geht mit Accelerators, diese musst du zuerst nach der Syntax "nameID ACCELERATORS DISCARDABLE
BEGIN
// Hier dann deine Werte nach dem Schema:
"a" nameID, VIRTKEY, CONTROL, NOINVERT // Bei STRG+A wird das aktiviert
ENDDann fragst du das in der Hauptschleife mit TranslateAccelerator ab und dann wird dir eine Nachricht in deine WinProcedure geschickt, die im LOWORD des wParams unter WM_COMMAND ankommt.
D.h. werte das so aus:
switch(msg)
{
...
case WM_COMMAND: // Eine Taste wurde gedrückt
switch(LOWORD(wParam))
{
case nameID:
// Jetzt wurde die Taste mit der ID "nameID" gedrückt
}
...
}Weiteres kannst du unter den Suchworten TranslateAccelerator, WM_COMMAND, ACCELERATOR usw in der Microsoft-MSDN herausfinden

Hier ein paar rausgesuchte Sachen:
ACCELERATORS Resource: http://msdn2.microsoft.com/en-us/library/aa380610.aspx
TranslateAccelerator(): http://msdn2.microsoft.com/en-us/library/ms646373.aspx
WM_COMMAND: http://msdn2.microsoft.com/en-us/library/ms647591.aspxDen Rest reimst du dir dann zusammen

Greetings,
Chaos
-
Ich weis nicht wie ich mit der Funktion FindWindow die mir einen Handle(HWND) zurückliefert umgehen soll. Woher soll ich den den Klassennamen eines fremden Fensters wissen z.B. IE(=Internet Explorer). Kann mir jemand ein Codebeispiel geben in dem erläutert wird wie man:
1.:Fensterhandle herausfinden mit FindWindow:HWND FindWindow(lpWindowClass,lpWindowName);2.:Fenster in Vordergrund bringt(Problem: Welche Flag ? ):
BOOL SetWindowPos(HWND hWnd,HWND hWndInsertAfter,int x,int y,int cx,int cy,UINT uFlags);Danke.