Hey leute,
ich will ein kleines programm machen mit dem ich angezeigt bekomme wie viel anschläge ich Pro Minute mache und wie viel ich insgesamt gemacht habe und wie viel am Tag oder an verschiedenen Tagen...
Hey leute,
ich will ein kleines programm machen mit dem ich angezeigt bekomme wie viel anschläge ich Pro Minute mache und wie viel ich insgesamt gemacht habe und wie viel am Tag oder an verschiedenen Tagen...
ok. viel spaß
edit: falls dus nicht verstehst:
dass du hilfe willst is mir schon klar
blos bei was. erst selber probieren und dann ausführlich dein problem posten.
gib dir bitte mehr mühe beim erstellen deiner threads
also alle tastenschläge mit
[autoit]_IsPressed
[/autoit]
abfangen und dann in eine variable +1
dann vllt noch ein bischen rechnen etc. um das mit den tastenschlägen in der minute zu bekommem und halt beides in eine .ini schreiben oder so
Nimm ein Editcontrol fürs erfassen, Mit _GUICtrlEdit_GetTextLen kanst du die Zeichen ermitteln
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiEdit.au3>
#include <GuiStatusBar.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]$Debug_Ed = False ; Prüft den Klassennamen (ClassName), der an die Edit-Funktion übergeben wird. Setze dies versuchsweise auf True und verwende dann ein Handle zu einem anderen Control, um die Funktionsweise zu verstehen.
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $StatusBar, $hEdit, $hGUI
Local $Wow64 = ""
If @AutoItX64 Then $Wow64 = "\Wow6432Node"
Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $Wow64 & "\AutoIt v3\AutoIt", "InstallDir") & "\include\changelog.txt"
Local $aPartRightSide[2] = [378, -1]
; Erstellt eine GUI
$hGUI = GUICreate("Edit: Ermittelt die Textlänge", 400, 300)
$hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268, BitOR($ES_WANTRETURN, $WS_VSCROLL))
$StatusBar = _GUICtrlStatusBar_Create($hGUI, $aPartRightSide)
_GUICtrlStatusBar_SetIcon($StatusBar, 1, 97, "shell32.dll")
GUISetState()
; Setzt die Ränder
_GUICtrlEdit_SetMargins($hEdit, BitOR($EC_LEFTMARGIN, $EC_RIGHTMARGIN), 10, 10)
; Setzt den Text
_GUICtrlEdit_SetText($hEdit, FileRead($sFile))
; Ermittelt die Textlänge
_GUICtrlStatusBar_SetText($StatusBar, "Textlänge: " & _GUICtrlEdit_GetTextLen($hEdit) & " Zeichen")
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
Die demo funktioniert ja gar nicht =(
hab es jetzt mal so versucht ging aber nicht...
#include <GuiEdit.au3>
#include <GuiStatusBar.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
$StatusBar = _GUICtrlStatusBar_Create($hGUI, $aPartRightSide)
$Form1 = GUICreate("ZZ - ZeichenZähler", 299, 52, 192, 124)
$Label1 = GUICtrlCreateLabel("Anschläge seit Start des Systems", 0, 0, 160, 17)
$Label2 = GUICtrlCreateLabel(_GUICtrlEdit_GetTextLen($hEdit), 8, 24, 200, 17)
$Label3 = GUICtrlCreateLabel("Zeichen", 216, 24, 43, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Evtl. so:
#include <GuiEdit.au3>
#include <GuiStatusBar.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <misc.au3>
Global $anzahl = 0
[/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("ZZ - ZeichenZähler", 299, 52, 192, 124)
$Label1 = GUICtrlCreateLabel("Anschläge seit Start des Systems", 0, 0, 160, 17)
$Label2 = GUICtrlCreateLabel("0", 8, 24, 200, 17)
$Label3 = GUICtrlCreateLabel("Zeichen", 216, 24, 43, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
If _IsAnyKeyPressed() >= 0 Then
$anzahl = $anzahl + 1
GUICtrlSetData($Label2, $anzahl)
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _IsAnyKeyPressed($start = 0, $end = 255)
For $i = $start to $end
if (_IsPressed(Hex($i))) Then return $i
Next
return -1
EndFunc
Die demo funktioniert ja gar nicht =(
Das Hilfebeispiel funktioniert, sprich es gibt direkt nach dem Start die Länge des geladenen Textes (changelog.txt) aus. Du müsstest dies:
[autoit]; Ermittelt die Textlänge
_GUICtrlStatusBar_SetText($StatusBar, "Textlänge: " & _GUICtrlEdit_GetTextLen($hEdit) & " Zeichen")
nur auf einen Button legen (besser noch eine Func die du nach 10 Minuten aufrufst)
hab es jetzt mal so versucht ging aber nicht...
kann es auch nicht, da du
mfg (Auuto)Bert
Ich habe so etwas schon mal gemacht...
Hier mal alles auf den neuesten Stand gebracht :D.
#include <GUIConstants.au3>
#include <Misc.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$hWnd = GUICreate("Anschläge", 200, 150)
$cLabel1 = GUICtrlCreateLabel("Gesamt:", 5, 5, 50, 15)
$cLabel2 = GUICtrlCreateLabel("Pro Minute:", 5, 25, 60, 15)
$cCounter = GUICtrlCreateLabel(0, 100, 5, 90, 15)
$cKeysPerMinute = GUICtrlCreateLabel(0, 100, 25, 90, 15)
$cEdit = GUICtrlCreateEdit("", 5, 45, 190, 100)
GUISetState()
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
[/autoit] [autoit][/autoit] [autoit]$vUser32DLL = DllOpen("User32.dll")
$iKeysPressed = 0
$iLastKeyPressed = -1
$Timer = TimerInit()
While Sleep(10)
If Not _IsPressed(Hex($iLastKeyPressed, 2), $vUser32DLL) Then $iLastKeyPressed = -1
For $i = 3 To 255
If $i <> $iLastKeyPressed And _IsPressed(Hex($i, 2), $vUser32DLL) Then
$iKeysPressed += 1
$iLastKeyPressed = $i
_Update()
EndIf
Next
WEnd
Func _Update()
$KeysPerMinute = $iKeysPressed / (TimerDiff($Timer) / 60)
GUICtrlSetData($cCounter, $iKeysPressed)
GUICtrlSetData($cKeysPerMinute, Round($KeysPerMinute, 2))
EndFunc
Func _Exit()
Exit
EndFunc
Es funktioniert auf jeden Fall :P.
Sprenger hat das glaub auch mal gemacht, oder?