Das Programm das ich hier geschrieben hab, ist zum zählen der Klicks die während dem laufenden Betrieb, getätigt wurden.
Es läuft schön im Hintergrund doch das Tray-Icon hab ich zum Gebuggen (was sicher noch nötig ist ) eingeblendet gelassen.
Verbesserungsvorschläge, Kritiken, Bemerkungen o.ä. sind zutiefst erwünscht
Viel Spaß
Spoiler anzeigen
;~ #NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]Opt("MustDeclareVars", 1)
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{F7}", "_ShowClicks")
HotKeySet("{F6}", "_Reset")
Global $tWriteVar = TimerInit()
Global $tWriteTime = $tWriteVar
Global $ini_dir = @ScriptDir & "\clicks.ini"
If Not FileExists($ini_dir) Then
FileWrite($ini_dir, _
"[clicks]" & @CRLF & _
"clicks=0" & @CRLF & _
@CRLF & _
"[time]" & @CRLF & _
"minutes=0" & @CRLF & _
@CRLF & _
"[begin]" & @CRLF & _
"year=" & @YEAR & @CRLF & _
"day=" & @YDAY & @CRLF & _
"hour=" & @HOUR & @CRLF & _
"min=" & @MIN & @CRLF & _
"sec=" & @SEC)
EndIf
Global $clicks = IniRead($ini_dir, "clicks", "clicks", 0)
Global $minutes = IniRead($ini_dir, "time", "minutes", 0)
MsgBox(262144, "Clicker", "Mit F7 kannst du dir anzeigen lassen, wie viel Klicks du pro Minute die dein PC läuft schon gemacht hast. Mit F6 kannst du deine Klicks zurücksetzen.")
[/autoit] [autoit][/autoit] [autoit]While 1
_Check(01)
_Check(02)
_Check(04)
Sleep(50)
If TimerDiff($tWriteVar) / 1000 >= 5 Then
IniWrite($ini_dir, "clicks", "clicks", $clicks)
IniWrite($ini_dir, "time", "minutes", $minutes)
$tWriteVar = TimerInit()
EndIf
If TimerDiff($tWriteTime) / 1000 >= 60 Then
$minutes += 1
$tWriteTime = TimerInit()
EndIf
WEnd
Func _ShowClicks()
Local $local_minutes = $minutes
Local $clicks_per_minute = $clicks / $local_minutes
$clicks_per_minute = Int($clicks_per_minute)
Local $sek_now = (@YEAR * 31536000) + (@YDAY * 86400) + (@HOUR * 3600) + (@MIN * 60) + @SEC
Local $sek_restart = (IniRead($ini_dir, "begin", "year", @YEAR) * 31536000) + (IniRead($ini_dir, "begin", "day", @YDAY) * 86400) + (IniRead($ini_dir, "begin", "hour", @HOUR) * 3600) + IniRead($ini_dir, "begin", "sec", @SEC)
Local $sek = $sek_now - $sek_restart
Local $seit = _Umrechnen($sek)
MsgBox(262144, "Clicker", "Der Clicker läuft schon seit" & $seit & @CRLF & "und du hast ca. " & $clicks_per_minute & " Mausclicks pro Minute.")
EndFunc ;==>_ShowClicks
Func _Check($button)
If _IsPressed($button) Then
$clicks += 1
Do
Sleep(50)
Until Not _IsPressed($button)
EndIf
EndFunc ;==>_Check
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
Func _Umrechnen($sekunden_in)
[/autoit] [autoit][/autoit] [autoit]Local $levels = -1
Local $jahre
Local $tage
Local $stunden
Local $minuten
Local $sekunden
Local $return
If $sekunden_in >= 31536000 Then
$levels = 5
Do
$sekunden_in -= 31536000
$jahre += 1
Until $sekunden_in < 31536000
EndIf
If $sekunden_in >= 86400 Then
If $levels = -1 Then $levels = 4
Do
$sekunden_in -= 86400
$tage += 1
Until $sekunden_in < 86400
EndIf
If $sekunden_in >= 3600 Then
If $levels = -1 Then $levels = 3
Do
$sekunden_in -= 3600
$stunden += 1
Until $sekunden_in < 3600
EndIf
If $sekunden_in >= 60 Then
If $levels = -1 Then $levels = 2
Do
$sekunden_in -= 60
$minuten += 1
Until $sekunden_in < 60
EndIf
If $levels = -1 Then $levels = 1
$sekunden = $sekunden_in
If $levels = 5 Then
If $jahre = 1 Then
$return = $jahre & " Jahr und"
Else
$return = $jahre & " Jahre und"
EndIf
ElseIf $levels >= 4 Then
If $tage = 1 Then
$return = $return & " " & $tage & " Tag und"
Else
$return = $return & " " & $tage & " Tage und"
EndIf
ElseIf $levels >= 3 Then
If $stunden = 1 Then
$return = $return & " " & $stunden & " Stunde und"
Else
$return = $return & " " & $stunden & " Stunden und"
EndIf
ElseIf $levels >= 2 Then
If $minuten = 1 Then
$return = $return & " " & $minuten & " Minute und und"
Else
$return = $return & " " & $minuten & " Minute und und"
EndIf
EndIf
If $sekunden = 1 Then
$return = $return & " " & $sekunden & " Sekunde"
Else
$return = $return & " " & $sekunden & " Sekunden"
EndIf
Return ($return)
EndFunc ;==>_Umrechnen
Func _Reset()
If MsgBox(262148, "Clicker", "Bist du sicher dass du deine Clicks zurücksetzen willst ?") = 6 Then
FileDelete($ini_dir)
FileWrite($ini_dir, _
"[clicks]" & @CRLF & _
"clicks=0" & @CRLF & _
@CRLF & _
"[time]" & @CRLF & _
"minutes=0" & @CRLF & _
@CRLF & _
"[begin]" & @CRLF & _
"year=" & @YEAR & @CRLF & _
"day=" & @YDAY & @CRLF & _
"hour=" & @HOUR & @CRLF & _
"min=" & @MIN & @CRLF & _
"sec=" & @SEC)
$clicks = 0
EndIf
EndFunc ;==>_Reset