PostMessage, was mache ich falsch??
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
nimm besser mouse_event() oder SendInput() dafür ...
-
Ok danke fuer die Tipps,
mitmouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
habe ich es schliesslich hinbekommen, wie net schon gesagt hat
Hmm iergendwie ist mir das Suspekt,
ich versuche es grade mit SendImput,
laut microsoft (Header: Winuser.h
)
befindet sich die Funktion in Winuser.h, bei mir
sagt er aber undeclared identifier...
-
1. windows.h nehmen...
2. SendMessage Hätte auch gefunzt hättest de WM_LBUTTONDOWN und dann noch WM_LBUTTONUP geschickt;)
-
(D)Evil schrieb:
1. windows.h nehmen...
2. SendMessage Hätte auch gefunzt hättest de WM_LBUTTONDOWN und dann noch WM_LBUTTONUP geschickt;)Ok danke,
ich bentuze jetztPostMessage(hwnd, MOUSEEVENTF_LEFTDOWN, NULL, NULL); PostMessage(hwnd, MOUSEEVENTF_LEFTUP, NULL, NULL);
Kompetente hilfe hier
Grüße
-
Oh nein was du machst ist völlig falsch.
-
Naja... ich war es zwar net, aber mein vorposter hat recht. Guck dir mal in der MSDN folgendes an: WM_LBUTTONDOWN Notification und WM_LBUTTONUP Notification und wenn de das dann nutzen willst kannst de bsw folgendes Makro nutzen MAKELPARAM ...
Also du musst als 1. Parameter die Linkemaustaste angeben also MK_LBUTTON (oder NULL sollte es auch tuen!) und als 2. dann die Mauskoordinaten in Low und High Word verpackt...
-
PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(mPos.x, mPos.y)); PostMessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(mPos.x, mPos.y));
funktioniert nicht
-
sd333221 schrieb:
funktioniert nicht
Was heißt hier bitte 'funktioniert nicht' ...gehts n bissl genauer ?
Wie testes du den, ob es funktioniert ?
Ich würde das auch nicht via WM_LBUTTONUP/DOWN machen, sondern via WM_COMMAND,
wenn ich deine Intention richtig verstanden habe :p .sd333221 schrieb:
SetCursorPos(100,15); // <- Maus Position aendern
Und wenn einer das Fenster verschiebt ?!
-
CodeFinder schrieb:
sd333221 schrieb:
SetCursorPos(100,15); // <- Maus Position aendern
Und wenn einer das Fenster verschiebt ?!
Das spielt erstmal keine Rolle,
ich werde da später noch eine Lösung finden
(Fenster wird oben links gelockt)Muss mich allerdings korrigieren,
PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(mPos.x, mPos.y)); PostMessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(mPos.x, mPos.y));
funktioniert doch, aber leider nur jedes dritte mal wenn es aufgerufen wird ^^
Naja lassen wir das, ich benutze jetzt
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
und bin zufrieden damit
Es geht nurnoch darum dass bei
if(GetAsyncKeyState(VK_NUMPAD1))
Wenn man die Taste drückt die Funktion nich 5 mal sondern nur ein mal
aufgerufen wirdNajo habs erstmal mit nem Sleep(100);
Delay gemacht