|
You last visited: Today at 16:50
Advertisement
[Help]Tastatur-Maus beweg melder
Discussion on [Help]Tastatur-Maus beweg melder within the AutoIt forum part of the Coders Den category.
10/03/2010, 21:29
|
#16
|
elite*gold: 0
Join Date: Oct 2008
Posts: 428
Received Thanks: 179
|
Multitask und Multithreading ist was anderes :P
|
|
|
10/03/2010, 22:02
|
#17
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Multithreading ist in AutoIt nicht möglich, Ende.
|
|
|
10/04/2010, 02:36
|
#18
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
echtes multithreading ist soweiso nicht möglich.
wenn mir jemand etwas zeigt was zu einem zeitpunkt 2 aktionen durchführen kann, dann respekt.
aber auch autoit ist wie alle anderen sprachen in der lage dazu, so schnell zu arbeiten, das es für menschen so aussieht, als würde es mehrere dinge gleichzeitg tun. natürlich muss man hierbei auf funktionen wie sleep oder wait, die das script blockieren verzichten.
|
|
|
10/04/2010, 09:51
|
#19
|
elite*gold: 0
Join Date: Feb 2009
Posts: 53
Received Thanks: 20
|
Um mal wieder zurück zum Thema zu kommen:
Wenn man _Timer_GetIdleTime benutzt hätte, hätte man sich unglaublich viel Code erspart...
|
|
|
10/04/2010, 14:13
|
#20
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
hier mal das script ohne script blockierende befehle:
Code:
#include <Misc.au3>
Dim $timer, $zaehler = 0
$user32 = DllOpen('user32.dll')
GUICreate("Maus & Tastatur Melder © by SaneX/Yannik", 450, 198, 217, 172)
$Label1 = GUICtrlCreateLabel("Das Programm starten", 16, 32, 167, 24)
GUICtrlSetFont(-1, 12, 400, 2, "Impact")
$Button1 = GUICtrlCreateButton("Start", 24, 96, 99, 25, 0x20000)
$Button2 = GUICtrlCreateButton("Stopp", 24, 128, 99, 25, 0x20000)
$Group1 = GUICtrlCreateGroup("Starten und Stoppen", 16, 72, 153, 97)
GUICtrlSetFont(-1, 8, 800, 0, "Times New Roman")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button3 = GUICtrlCreateButton("Credits", 213, 8, 219, 177, 0x20000)
GUICtrlSetFont(-1, 16, 800, 6, "Verdana")
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
DllClose($user32)
Exit
Case $Button1
$zaehler = 1
$timer = TimerInit()
Case $Button2
$zaehler = 0
Case $Button3
MsgBox(0,"Credits","Made by Yannik auch bekannt als SaneX bzw. ToThePub"&@CRLF&"am 03.10.2010 um genau 14:00 Uhr"&@CRLF&"Anlass deswegen ist , da ich gerade etwas downloade"&@CRLF&"und nicht will das jemand an mein PC geht")
Case Else
If $zaehler > 0 And $zaehler < 12 Then
If TimerDiff($timer) >= $zaehler*1000 Then
TrayTip('Info', 'Die Überwachung startet in genau '&11-$zaehler&' sekunden.', 3)
$zaehler += 1
$maus_alt = MouseGetPos()
EndIf
ElseIf $zaehler > 0 Then
$maus_neu = MouseGetPos()
If $maus_alt[0] <> $maus_neu[0] Or $maus_alt[1] <> $maus_neu[1] Then
MsgBox(0, "Maus bewegt", "Du hast die Maus bewegt, du sollst doch nicht an meinen PC" & @CRLF & "während ich was downloade :( , hör docheinmal auf mich")
$maus_alt = MouseGetPos()
EndIf
For $i = 5 To 255
If _IsPressed($i, $user32) Then MsgBox(0, "Tastatur wurde bewegt", "Ich downloade gerade etwas oder mache etwas anderes!" & @CRLF & "Deshalb gehe bitte nicht an meinen PC!" & @CRLF & "Sonst wird Yannik Sauer ;D")
Next
EndIf
EndSwitch
WEnd
pinguin94 meinte zwar das man kein globales handle zur dll benötigt, jedoch wäre das 250malige öffnen der dll (pro schleifen durchlauf) ein doch recht unnötiger aufwand.
da das ganze ja leider global laufen soll, und nicht nur wenn das gui aktiv ist, kann man hier ja leider nicht mit GetKeyboardState arbeiten, was das ganze nochmal deutlich ressourcen schonender machen würde.
|
|
|
10/06/2010, 22:30
|
#21
|
elite*gold: 0
Join Date: Nov 2009
Posts: 2,210
Received Thanks: 6,754
|
^.^
Zu deiner Frage:
Code:
Func _IsPressed($sHexKey, $vDLL = 'user32.dll')
Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
If @error Then Return SetError(@error, @extended, False)
Return BitAND($a_R[0], 0x8000) <> 0
EndFunc ;==>_IsPressed
Er callt die Funktion "GetAsyncKeyState" die in der User32.dll aufgeführt ist ...
jezz kann man noch sowas einbauen:
Code:
#RequireAdmin
#NoTrayIcon
#include <Misc.au3>
$dll = DllOpen("user32.dll")
While 1
If _IsPressed(26,$dll) Then ;up
Exit
endif
$maus = MouseGetPos()
For $i = 0 To 256
If _IsPressed($i) Then
MsgBox(0, "Tastatur wurde bewegt", "Ich downloade gerade etwas " & @CRLF & "Deshalb gehe bitte nicht an meinen PC!",0.8)
EndIf
Next
$maus2 = MouseGetPos()
If $maus[0] <> $maus2[0] Or $maus[1] <> $maus2[1] Then
MsgBox(0, "Maus bewegt", "Ich downloade was !" & @CRLF & "gehe nicht an meinen PC!",0.8)
MouseMove($maus[0],$maus[1])
$maus = MouseGetPos()
EndIf
WEnd
|
|
|
10/06/2010, 22:51
|
#22
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
das wurde doch schon längst geposted -.- und mal davon abgesehn hast du das dllclose vergessen.
|
|
|
10/07/2010, 16:19
|
#23
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Deshalb erst gar nicht die DLL öffnen im Script! xD
|
|
|
10/07/2010, 19:46
|
#24
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by pinguin94
Deshalb erst gar nicht die DLL öffnen im Script! xD
|
naja das wäre eben nicht gut :P
DllCall('blah.dll', ....) (1. parameter = string != variable)
macht ja folgendes:
Code:
Local $dll = DllOpen('blah.dll')
DllCall($dll, ...)
DllClose($dll)
klar wenn man nur einmal die dll nutzen möchte, kann man das dllopen und close also auch weglassen, da er es dann automatisch macht.
wenn ich allerdings wiederholten zugriff auf die dll brauche, brauch ich ja nicht wiederholt die dll öffnen und schließen, sondern tuhe das nur einmalig am anfang bzw ende des scripts
|
|
|
|
|
Similar Threads
|
2 Pcs 2 Bildschirme 1 Maus 1 Tastatur! Wie?
09/25/2010 - Technical Support - 29 Replies
Hi
Ich wollte mir jetzt erstmal auf mindfactory zwei Computer zusammenstellen! Ohne Bildschirm, Maus und Tastatur!
Jeder Computer darf Maximal 250 € kosten Was empfehlt ihr mir was ich einbauen soll?
Sie müssten geignet sein um Half Life 2 zu starten und Windows 7 drauf laufen zu lassen!
Und dann noch:
|
maus und tastatur sperren
02/06/2010 - AutoIt - 4 Replies
hallo
ich will das die tastatur durch einen script gesperrt wird
habe es schon mit blockinput und
mousetrap versucht geht irgendwie nicht
wie kann ich das problem lösen?
danke:handsdown::handsdown:
|
Tastatur und Maus Help!
01/19/2010 - Technical Support - 6 Replies
HEy brauche dringend Hilfe nachdem ich ein spiel länger las 15min spiele hab ich keine kontrolle mehr rüber und nix mehr geht werde schreiben noch bewegen kann ich die maus oder die tastatur brauche bitte schnellen Support!
|
Gaming Tastatur/Maus zum laufen bringen?
04/03/2008 - Rappelz - 3 Replies
Hallo!
Ich habe vorhin mit Rappelz angefangen und würde ja gerne meine Maus (MX518) oder Tastatur (G15) verwenden. Leider werden die Funktionen von Rappelz geblockt.
Daher wüsste ich gerne, was man tun kann, um die Maus/Tastatur wieder richtig nützen zu können? Mir geht es dabei weniger um die Makro Funktionen sondern um ganz normale Tasten. Bei der Maus wollte ich die Befehle Aufheben, Angreifen und Ziel markieren (Tab) verwenden...
Jetzt habe ich das mit dem Fu Rootkit gelesen,-...
|
Beste Maus&Tastatur?
10/13/2006 - Off Topic - 13 Replies
Jop hi, welche maus und welche Tastatur ist die beste Gamer Maus und Tastatur auf dem Markt? Könnt ihr modelle hier rein schreiben mit Preis etc thx im vorraus! :cool:
|
All times are GMT +2. The time now is 16:50.
|
|