Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 15:22

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

Advertisement



Tastenzähl Bot

Discussion on Tastenzähl Bot within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2009
Posts: 127
Received Thanks: 21
Tastenzähl Bot

Hey Community...

Code:
$NCount = GUICreate("Count", 168, 33, 303, 219)
$Hits = GUICtrlCreateLabel("", 4, 0, 156, 28)
GUISetState(@SW_SHOW)
GUISetState(@SW_ENABLE)
;WinSetOnTop ($NCount, "Count", 1)
WinActivate ( $NCount , "Count" )


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
           
            If _IsPressed(31) Then
                $x = $x + 1
            EndIf
            GUICtrlSetData($Hits,$x)
           
    EndSwitch
WEnd
Das ist mein Quelltext.
Ich möchte das diese Gui so wie z.B ne Sidebar einfach nur dauerhaft im Vordergrund ist, deswegen WinActivate, da sie in der Hilfe Datei geschreiben haben WinsetonTop könnte schwierigkeiten geben, stimmt das?

Naja zu meiner eigentlichen Frage, ich möchte dass er auch wenn ich nicht in dem AutoIt fenster also in der Gui bin, registriert wenn ich eine Taste auf der Tastatur drücke und dann $x erhöht, also das Programm soll zählen wie viele Tasten ich gedrückt habe.

Bitte euch ganz dolle um Hilfe?

Mit freundlichen Grüßen
*scarface*
*scarface* is offline  
Old 10/28/2010, 16:53   #2


 
Al Kappaccino's Avatar
 
elite*gold: 179
Join Date: Oct 2009
Posts: 7,853
Received Thanks: 8,558
Erm, IsPressed ist doch eine Globale abfrage? Zumindet muss ich das Fenster bei mir nicht aktiv haben

Edit:
Ahh...Fehler

Code:
    Case $GUI_EVENT_CLOSE
           
            If _IsPressed(31) Then
                $x = $x + 1
            EndIf
            GUICtrlSetData($Hits,$x)
Würde natürlich keinen Sinn machen, weil er im Prinzip nur den Tastendruck abfrägt wenn du die GUI beendest ôo
Al Kappaccino is offline  
Thanks
1 User
Old 10/28/2010, 17:00   #3
 
elite*gold: 0
Join Date: May 2009
Posts: 127
Received Thanks: 21
Ouuuwww Stimmt... also muss ich das mit als extra Case einbauen oder?
*scarface* is offline  
Old 10/28/2010, 17:03   #4


 
Al Kappaccino's Avatar
 
elite*gold: 179
Join Date: Oct 2009
Posts: 7,853
Received Thanks: 8,558
Nein ...
Code:
While 1
          If _IsPressed(31) Then
                $x = $x + 1
            EndIf
            GUICtrlSetData($Hits,$x)

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
           Exit
        
    EndSwitch
WEnd
Al Kappaccino is offline  
Thanks
1 User
Old 10/28/2010, 17:08   #5
 
elite*gold: 0
Join Date: May 2009
Posts: 127
Received Thanks: 21
Ich habe gerade so versucht wie du es gesagt hast, jedoch wartet er nicht bis ich die Taste gedrückt habe, sondern zählt einfach direkt los bis ins unendliche, hast du dafür evtl. auch eine Antwort?
*scarface* is offline  
Old 10/28/2010, 17:13   #6
 
elite*gold: 0
Join Date: Jul 2010
Posts: 450
Received Thanks: 78
vielleicht:
Code:
$3 = 33
$TastenZahl
If  _IsPressed($3) then $TastenZahl +1
müsste aber auch irgendwie gehen, das man nich alle tasten extra machen muss...
eagly200 is offline  
Thanks
1 User
Old 10/28/2010, 17:15   #7
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
PHP Code:
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$NCount GUICreate("Count"16833303219)
$Hits GUICtrlCreateLabel(""4015628)
GUISetState(@SW_SHOW)
GUISetState(@SW_ENABLE)


$x 0
While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
    If 
_IsPressed(31Then
        Sleep
(200)
        
$x += 1
        GUICtrlSetData
($Hits$x)
    EndIf
WEnd 
omer36 is offline  
Thanks
1 User
Old 10/28/2010, 17:30   #8
 
elite*gold: 0
Join Date: May 2009
Posts: 127
Received Thanks: 21
Jetzt funktioniert vielen dank!
*scarface* is offline  
Old 10/28/2010, 17:52   #9
 
elite*gold: 0
Join Date: May 2009
Posts: 127
Received Thanks: 21
Code:
    If _IsPressed(31 Or 08 Or 09 Or 0C Or 0D Or 10 Or 11 Or 12 Or 13 Or 14 Or 
		1B Or 20 Or 21 Or 22 Or 23 Or 24 Or 25 Or 26 Or 27 Or 28 Or 29 Or 2A Or 
		2B Or 2C Or 2D Or 2E Or 30 Or 31 Or 32 Or 33 Or 34 Or 35 Or 36 Or 37 Or 
		38 Or 39 Or 41 Or 42 Or 43 Or 44 Or 45 Or 46 Or 47 Or 48 Or 49 Or 4A Or 4B 
		Or 4C Or 4D Or 4E Or 4F Or 50 Or 51 Or 52 Or 53 Or 54 Or 55 Or 56 Or 57 Or
		58 Or 59 Or 5A Or 5B Or 5C Or 60 Or 61 Or 62 Or 63 Or 64 Or 65 Or 66 Or 67 
		Or 68 Or 69 Or 6A Or 6B Or 6C Or 6D Or 6E Or 6F Or 70 Or 71 Or 72 Or 73 Or 
		74 Or 75 Or 76 Or 77 Or 78 Or 79 Or 7A Or 7B Or 90 Or 91 Or A0 Or A1 Or A2 Or A3 Or A4 Or A5 Or) Then
So nun habe ich wieder ein Problem... -.-
Ich habe alle Tasten in Codes dort eingegeben aber nun nimmt er die Buchstaben nicht an, woran liegt das?
*scarface* is offline  
Old 10/28/2010, 18:04   #10
 
elite*gold: 0
Join Date: Aug 2006
Posts: 409
Received Thanks: 150
Ich bin mir nicht sicher, aber ich bezweifle stark, dass du da einfach alle Tasten in ein _IsPressed reinklatschen kannst...
Ich würde es eher so machen:
Code:
 If _IsPressed(31) OR _IsPressed( 08 ) usw., usw., usw. Then
~De@dly Silence~ is offline  
Thanks
1 User
Old 10/28/2010, 18:38   #11
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
if _ispressed(...) then
dies und das
elseif _ispresses(;;; ) then
das und dies
elseif ....
...
..
endif
omer36 is offline  
Thanks
1 User
Old 10/28/2010, 18:51   #12
 
elite*gold: 0
Join Date: May 2009
Posts: 127
Received Thanks: 21
Also habe es jetzt in mehrere geschreiben, jedoch kommt er weiterhin nicht mit den Buchstaben klöar, geht es evtl. wenn ich sie in " Auführungszeichen setze?
*scarface* is offline  
Old 10/28/2010, 19:36   #13
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Code:
#include <Misc.au3>

Global $iCount = 0, $iOldHex

$hGUI = GUICreate("Zählen", 312, 58, 725, 328)
GUISetFont(12, 400, 0, "Arial")
$Count = GUICtrlCreateLabel("Count: 0", 64, 16, 100, 27)
GUICtrlSetFont(-1, 15, 400, 0, "Arial")
GUISetState()

$User32 = DllOpen("user32.dll")

While Sleep(50)
	_CheckKey($Count)
	If GUIGetMsg() = -3 Then ExitLoop
WEnd

DLLClose($User32)


Func _CheckKey($Control)
	For $i = 1 To 165
		$iHex = StringTrimLeft(Hex($i), 6)
		If _IsPressed($iHex) Then
			$iCount += 1
			GUICtrlSetData($Control, "Count: " & $iCount)
			Do
				Sleep(50)
			Until Not _IsPressed($iHex)
		EndIf
	Next
EndFunc
bitte.
PenGuin :O is offline  
Thanks
1 User
Reply




All times are GMT +1. The time now is 15:24.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.