Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 16:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Help]Tastatur-Maus beweg melder

Discussion on [Help]Tastatur-Maus beweg melder within the AutoIt forum part of the Coders Den category.

Reply
 
Old 10/03/2010, 21:29   #16
 
RealEmX's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 428
Received Thanks: 179
Multitask und Multithreading ist was anderes :P
RealEmX is offline  
Old 10/03/2010, 22:02   #17
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Multithreading ist in AutoIt nicht möglich, Ende.
PenGuin :O is offline  
Old 10/04/2010, 02:36   #18
 
lolkop's Avatar
 
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.
lolkop is offline  
Old 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...
Shkal is offline  
Old 10/04/2010, 14:13   #20
 
lolkop's Avatar
 
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.
lolkop is offline  
Old 10/06/2010, 22:30   #21
 
suiluJ.'s Avatar
 
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
suiluJ. is offline  
Old 10/06/2010, 22:51   #22
 
lolkop's Avatar
 
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.
lolkop is offline  
Old 10/07/2010, 16:19   #23
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Deshalb erst gar nicht die DLL öffnen im Script! xD
PenGuin :O is offline  
Old 10/07/2010, 19:46   #24
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by pinguin94 View Post
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
lolkop is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.