Need Help

09/24/2017 23:17 Esukho#1
Hallo ich brauch hilfe bei diesem script
es soll lediglich alles einer gewissen zeit die Linke maustaste drücken.

Soweit funktioniert es eigentlich auch, aber es hält die Linke maus taste gedrückt anstatt eines einfachen klicks.

**************************************
Hello i need help for this Script.
ATM it hold down Left click, and i want only a normal click

Code:
#RequireAdmin

HotKeySet("{NUMPAD7}", "_start")
HotKeySet("{NUMPAD9}", "_terminate")

Global $window = "" ; window name

While 1
	Sleep(1000)
WEnd

Func _start()

	If WinExists($window) Then
		WinActivate($window)
		Sleep(1000)

		While 1
		  Sleep(5000)
		  ControlClick($window, "", "", "left")
		  Sleep(10000)
		  #cs
		  MouseClick("left")
		  Sleep(10000)
		  #ce
		WEnd

	Else
		MsgBox(0, "Message", "Window don't exists.");
	EndIf

EndFunc

Func _terminate()
   Exit
EndFunc
09/26/2017 11:27 mhaendler#2
Also ich würde anstatt des "Left" immer ein "primary" um Fehler bezüglich Links / Rechts Händer Mäusen auszuschließen

Bei welcher Funktion Funktion "hält" er die Maustaste den gedrückt, bei "ControlClick" oder beim "MouseClick".
09/26/2017 15:06 Esukho#3
Mouseclick ist ja blos ein Commentary
sieht man ja durch
#CS und #CE

Es hält bei ControlClick also die taste gedrückt
09/26/2017 17:12 Moneypulation#4
Mouseclick wäre keine option? Also muss der klick im Hintergrund passieren?
09/26/2017 17:13 merquart#5
Code:
ControlClick ( "title", "text", controlID [, button = "left" [, clicks = 1 [, x [, y]]]] )
titleThe title/hWnd/class of the window to access. See Title special definition.
textThe text of the window to access. See Text special definition.
controlIDThe control to interact with. See Controls.
button[optional] The button to click, "left", "right", "middle", "main", "menu", "primary", "secondary". Default is the left button.
clicks[optional] The number of times to click the mouse. Default is 1.
x[optional] The x position to click within the control. Default is center.
y[optional] The y position to click within the control. Default is center.

Demnach sollte es doch reichen die Anzahl der Klicks einfach mit anzugeben?
Code:
ControlClick($window, "", "", "primary", 1)
09/26/2017 17:47 Esukho#6
Ne ist keine Option, er muss definitiv im Hintergrund geschehen.

ControlClick($window, "", "", "primary","1") hab ich auch probiert, ändert nichts, bleibt genau das selbe problem bestehen.


In meinem Fall soll es in einem Programm einen Button betätigen mit einer Vorgegebenen Zeit mit wiederholungen.

Aber es hält aus irgendeinem Grund die maus gedrückt und lässt diese nicht wieder los.

Vielleicht irre ich mich ja auch gewaltig und das problem liegt wo ganz anders, aber ich kann es anhand eines beispiels zeigen.

Genau so macht sich das problem bemerkbar, er drückt den Button ein, aber lässt nicht los so das die aktion gestartet wird
[Only registered and activated users can see links. Click Here To Register...]

Ich hab das Problem erkannt und suche jetzt noch nach einer lösung

Ein kleiner Delay zwischen Drücken und loslassen wird gebraucht ^^

Aber für Controlclick gibts keine UP and DOWN option ^^
09/26/2017 22:40 Moneypulation#7
Quote:
Originally Posted by merquart View Post
Code:
ControlClick ( "title", "text", controlID [, button = "left" [, clicks = 1 [, x [, y]]]] )
titleThe title/hWnd/class of the window to access. See Title special definition.
textThe text of the window to access. See Text special definition.
controlIDThe control to interact with. See Controls.
button[optional] The button to click, "left", "right", "middle", "main", "menu", "primary", "secondary". Default is the left button.
clicks[optional] The number of times to click the mouse. Default is 1.
x[optional] The x position to click within the control. Default is center.
y[optional] The y position to click within the control. Default is center.

Demnach sollte es doch reichen die Anzahl der Klicks einfach mit anzugeben?
Code:
ControlClick($window, "", "", "primary", 1)
Die default klickanzahl ist 1,daher braucht man die nicht angeben

Quote:
Originally Posted by Esukho View Post
Aber für Controlclick gibts keine UP and DOWN option ^^
Deswegen wundert es mich auch, dass er bei dir die maustaste gedrückt hält. Hast du mal probiert nach dem controlclick etwas per controlsend zu senden? Vielleicht resettet das dein mausklick
09/26/2017 23:02 Esukho#8
Quote:
Originally Posted by Moneypulation View Post
Die default klickanzahl ist 1,daher braucht man die nicht angeben



Deswegen wundert es mich auch, dass er bei dir die maustaste gedrückt hält. Hast du mal probiert nach dem controlclick etwas per controlsend zu senden? Vielleicht resettet das dein mausklick
Hab das problem selber erkannt, es klickt quasi zu schnell und das programm erkennt das loslassen nicht mehr.
Habs mit Einem macro Programm ausgetestet und da gings auch erst wenn ich einen 0,5 sec Delay zwischen druck und loslassen einfüge
Aber ich sehe selbst grad keine Möglichkeit ein Delay zwischen Klick und loslassen zu machen in form von
ControlClick :(

Jemand ne lösung ?
09/27/2017 14:13 Lawliet#9
Versuchs mal mit _SendMessage

PHP Code:
#include <SendMessage.au3>
#include <WindowsConstants.au3>
_SendMessage($hWndControl$WM_LBUTTONDOWN)

Sleep(500)

_SendMessage($hWndControl$WM_LBUTTONUP
Ich glaube ControlClick funktioniert genauso.
Mit ControlGetHandle bekommst du das Handle ;)