Wie man Tastendrücke auslesen kann weiß ich aber:
Wie kann man auslesen ob eine MausTaste gedrückt oder losgelassen wurde?
Ähnliches mit Mausrad:
Wie kann ich auslesen ob das Mausrad vor oder zurück bewegt wurde?
Wenn jmd da etwas weiß bitte melden ![]()
Wie man Tastendrücke auslesen kann weiß ich aber:
Wie kann man auslesen ob eine MausTaste gedrückt oder losgelassen wurde?
Ähnliches mit Mausrad:
Wie kann ich auslesen ob das Mausrad vor oder zurück bewegt wurde?
Wenn jmd da etwas weiß bitte melden ![]()
_isPressed()
[/autoit]
Für Maustasten (01 = Linke Taste, 02 = Rechte Taste)
zum Mausrad schau mal hier
letzter Post
das mit dem Mausrad werd ich mir mal alles durchlesen.
Aber zur ersten Antwort.. Ich möchte wissen wie man ausließt ob eine Maustaste GEDRÜCKT oder LOSGELASSEN wurde, nicht ob sie einfach nur betätigt wurde.
Zeig am besten mal dein Script, dann kann ich mirs ja mal anschaun ![]()
Ich poste mal nur die entsprechende Funktion.. Alles wäre zu lang.
[autoit]Func _move_picture()
[/autoit][autoit][/autoit][autoit][/autoit][autoit]$dif_pic_gui_x = $mouse_x_new - $mid_width
$dif_pic_gui_y = $mouse_y_new - $mid_height
;Die oberen beiden Zeilen dürfen nur ausgeführt werden, wenn die Maustaste gedrückt wurde und nicht wenn sie aktuell gedrückt ist.
;(Wenns hier nicht passt werd ich das schon umbasteln nur muss ich wissen wie man dies überhaupt ausließt)
$dims = GUIGetCursorInfo("[active]")
$mouse_x_new = $dims[0]
$mouse_y_new = $dims[1]
$mid_width = ($mouse_x_new - $dif_pic_gui_x)
$mid_height = ($mouse_y_new - $dif_pic_gui_y)
Sleep(300)
GUICtrlSetPos($the_pic,$mid_width, $mid_height, $pic_width, $pic_height)
$first = False
EndFunc
[/autoit]Soll die Funktion ausgeführt werden wenn eine Maustaste gedrückt wird? Hab ich das so richtig verstanden?
Da mach doch einfach:
$dll = Dllopen("user32.dll")
While 1
If _IsPressed(01,$dll) then _move_picture
Wend
Nene.. diese Funktion wird solange durchlaufen, wie die Maustaste gehalten wird.
Aber um richtig zu funktionieren benötigt die Funktion einen Wert, welcher nur beim ersten drücken der Maustaste festgelegt wird.
Solange man die Taste aber gedrückt hält darf dieser Wert nicht neu generiert werden.
While 1
If _IsPressed(01,$dll) then _move_picture
Do
Sleep(100)
Until Not _IsPressed(01)
Wend
sonst führt er das ganze immer aus wenn man n bisschen länger draufbleibt (also er führts gaaanz oft hintereinander aus^^)
Padmak
Soll ja auch eig dauerhaft ausgeführt werden^^
Func _move_picture()
If $Pressed = 0 then ; $Pressed muss noch deklariert werden! (mit Wert 0)
If _IsPressed(01,$dll) then
$dif_pic_gui_x = $mouse_x_new - $mid_width
$dif_pic_gui_y = $mouse_y_new - $mid_height
;Die oberen beiden Zeilen dürfen nur ausgeführt werden, wenn die Maustaste gedrückt wurde und nicht wenn sie aktuell gedrückt ist.
;(Wenns hier nicht passt werd ich das schon umbasteln nur muss ich wissen wie man dies überhaupt ausließt)
$Pressed = 1
Endif
Endif
If Not _IsPressed(01,$dll) then $Pressed = 0
$dims = GUIGetCursorInfo("[active]")
$mouse_x_new = $dims[0]
$mouse_y_new = $dims[1]
$mid_width = ($mouse_x_new - $dif_pic_gui_x)
$mid_height = ($mouse_y_new - $dif_pic_gui_y)
Sleep(300)
GUICtrlSetPos($the_pic,$mid_width, $mid_height, $pic_width, $pic_height)
$first = False
EndFunc
[/autoit]Keine Ahnung obs so klappt. Einfach mal versuchen
While 1
If _IsPressed(01,$dll) then
$dif_pic_gui_x = $mouse_x_new - $mid_width
$dif_pic_gui_y = $mouse_y_new - $mid_height
While
_move_picture()
WEnd
EndIf
Wend
Func _move_picture()
[/autoit][autoit][/autoit][autoit]$dims = GUIGetCursorInfo("[active]")
$mouse_x_new = $dims[0]
$mouse_y_new = $dims[1]
$mid_width = ($mouse_x_new - $dif_pic_gui_x)
$mid_height = ($mouse_y_new - $dif_pic_gui_y)
Sleep(300)
GUICtrlSetPos($the_pic,$mid_width, $mid_height, $pic_width, $pic_height)
$first = False
EndFunc
[/autoit]
und wie soll das ganze abgebrochen werden?
Padmak
Ich hab mal meine Idee umgesetzt:
#include <Misc.au3>
While 1
If _IsPressed("01") Then _move_picture()
Sleep (100)
WEnd
Func _move_picture()
While 1
If not _IsPressed ("01") Then ExitLoop
;~ Hier musst du deine Func reinmachen
ToolTip ("Func wird ausgeführt")
WEnd
ToolTip ("")
EndFunc
Das ToolTip musst du dann wegmachen, und in die While deine Func machen!
Das ich da nicht selber drauf gekommen bin^^
Also MOZ.. läuft so wie es soll.. vielen Dank ![]()
Musste zwar ein wenig umstellen (Das if not _ispressed woanders hin[da die Funktion ja nur bei gedrückter Taste ausgeführt wird.. und wenn nicht gedrückt kann diese Abfrage auch nicht ausgeführt werden^^]) aber sonst alles top
und was is mit mir
![]()
Padmak
Kein Problem ![]()
Dich mag er nich ![]()
Ne spaß
ich find deins eig sogar besser als meins^^ Es fehlt nur die Abbruchfunktion
Ich bin halt nur von oben nach unten durchgegangen und da war moz halt der erste mit einem guten beispiel^^
Aber natürlich auch danke an alle anderen ![]()
danke ![]()
@abbruchfunktion^^
ich wusste net wohin damit ![]()
Padmak
Und ich? Ich armer Junger zu mir sagt niemand was
![]()
Wie gesagt.. Danke an alle ![]()
Das von JamOO ist übrigens ähnlich wie ich es nun gelöst habe.