1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. name22

Beiträge von name22

  • Error: Subscript used with non-Array variable.

    • name22
    • 2. April 2010 um 23:47
    Zitat

    dann schau einmal in Ordner Extras\Exe2Aut


    Hab ich doch^^. Und dort ist kein Decompiler weit und breit.

  • Easy Obfuscator (macht das lesen deutlich schwerer)

    • name22
    • 2. April 2010 um 23:44
    Zitat

    Kann man denn eine FUNKTION, meinetwegen GUICtrlRead so verschlüsseln, oder würde das auch nicht gehen ?!?!?


    Man kann auch Execute verwenden um die eigentliche Funktion zu verschleiern, man muss allerdings immer beachten, dass das irgendwann die Geschwindigkeit des Scripts beeinträchtigt.

  • Error: Subscript used with non-Array variable.

    • name22
    • 2. April 2010 um 23:10

    Ich finde bei meiner AutoIt Installation keine exe2aut und soweit ich weiß wird decompilen seit langem nicht mehr unterstützt.

  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 22:59

    Man könnte es mit irgendeiner (guten :rofl: ) Software für Texterkennung (OCR) testen. Und danach noch nach bestimmten Vorgaben mit Cheat Engine.
    Wie z.B. bei Text Captchas: Es darf nur nach dem aktuellen Captcha Text in CheatEngine gesucht werden, und falls sich mittels dieser Adresse immer wieder der Captcha Text ermitteln lässt ist das Script nicht Cheat Engine sicher.

  • Was ist hier falsch?

    • name22
    • 2. April 2010 um 22:52

    Du willst mir weismachen, dass das hier nicht funktioniert? :D

    [autoit]

    HotKeySet ( "{a}" , "start" )

    [/autoit]
  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 22:34

    Ich würde sagen wenn man speziell bei Text Captchas mit Cheat Engine nach dem dargestellten Text sucht darf man nichts finden oder eben nur Müll :D .
    Ich denke, dass nur eine absolute Minderheit überhaupt weiß was Base Pointer etc. sind. ^^

  • Was ist hier falsch?

    • name22
    • 2. April 2010 um 22:28
    Zitat

    Und ich kann dieses " For $i = 1 to 1 Step 1" Weglassen?


    Ließ dir den Beitrag von Stinger2k mal durch, dann müsstest du das eigentlich wissen :rolleyes:

  • CPU Auslasten

    • name22
    • 2. April 2010 um 22:23

    Dann frag doch einfach danach wie du einen Prozess auf alle Prozessoren auslagern kannst.
    Entweder war das jetzt von dir unglücklich formuliert oder du denkst dir das nur aus. :D

  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 22:21

    Aber wenn ich einmal mit Cheat Engine die Adresse der Variable hab, könnte ich doch theoretisch immer wieder ihren Wert auslesen. Ich habe das mal mit meinem alten Script versucht und geschafft, insofern ergibt das doch durchaus Sinn oder?

  • CPU Auslasten

    • name22
    • 2. April 2010 um 22:14

    Zu welchem Zweck ist das bitte? Wenn es das ist was ich vermute wird dir hier wahrscheinlich keiner helfen.
    Darum weise ich dich jetzt schon mal auf die Forenregeln hin.

  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 21:57

    Ich schicke mal meine Version ein, ich denke ich habe alle Bugs beseitigt. :)
    Cheat Engine ist ein hartnäckiger Gegner was diesen Wettbewerb betrifft ^^ Deswegen wünsche ich allen anderen viel Glück bei ihren Projekten. :thumbup:
    Wollte noch mal ein wenig angeben und hab deswegen noch ein Bild angehängt :P

    Bilder

    • Captcha_Big.PNG
      • 72,39 kB
      • 500 × 152
  • Timer der dauerhaft angezeigt und erneuert wird

    • name22
    • 2. April 2010 um 20:38

    Bitte schreib doch AutoIt Quelltext in Zukunft in ["autoit"]["/autoit"] brackets (ohne ""). ;)
    Zu deinem Problem:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Secs, $Mins, $Time = 0, $Timer = -1, $Hours

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Form1", 154, 161, 210, 192)
    $Input1 = GUICtrlCreateInput("min", 12, 16, 129, 21)
    $Input2 = GUICtrlCreateInput("sec", 12, 48, 129, 21)
    $START = GUICtrlCreateButton("GO", 8, 132, 137, 33)
    $label = GUICtrlCreateLabel("0:0:0", 64, 96, 36, 17)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    AdlibRegister("Update", 100)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $START
    $Timer = TimerInit()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Update()
    If $Timer <> -1 Then
    $Time = TimerDiff($Timer)
    _TicksToTime($Time, $Hours, $Mins, $Secs)
    GUICtrlSetData($label, $Hours & ":" & $Mins & ":" & $Secs)
    If $Time >= GUICtrlRead($Input2) * 1000 + GUICtrlRead($Input1) * 60000 Then
    MsgBox(0, "TIME IS UP", "TIME IS UP!!!!!!!!!!!!!!!!!")
    $Timer = -1
    EndIf
    EndIf
    EndFunc ;==>Update

    [/autoit]


    So funktionierts. :P

  • Dateien ohne Ordnerstruktur kopieren

    • name22
    • 2. April 2010 um 18:50

    Im Prinzip brauchst du nur das hier (von BugFix):

    Spoiler anzeigen
    [autoit]

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]


    Um die Dateien auch aus den Unterverzeichnissen auszulesen.
    Danach musst du nur noch alle Dateien mit FileCopy in ein beliebiges Verzeichnis kopieren.

  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 18:34

    Neidisch naja soooooo toll ist es auch wieder nicht ;) , aber dank vieler Fabrvariationen und einem einstellbarem Sicherheitslevel, dürfte es für Bots schwer werden.... Hoffe ich :D
    Immerhin ist es absolut CheatEngine sicher 8o . (Mehrfach getestet)
    Und Geschwindigkeit ist absolut kein Problem^^ Im Moment braucht es so ca. 8 Millisekunden.

    Bilder

    • Captcha 1.PNG
      • 8,88 kB
      • 125 × 60
    • Captcha 2.PNG
      • 9,71 kB
      • 124 × 62
    • Captcha 3.PNG
      • 11,17 kB
      • 124 × 59
  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 17:37
    Zitat

    Ich werde natürlich nicht einen Bot schreiben. Dazu fehlt mir auch die Zeit ;)


    Das war ja auch nur ein Scherz :D
    Also mein Captcha Creator funtkioniert im Prinzip perfekt und es sieht auch richtig gut aus, nur kann ich ihn immer noch mit Cheat Engine bearbeiten. :S
    Da muss ich wohl noch mal ran... :(
    Soll ich mal ein Bild hochladen? Nur so als Beispiel ;)

  • MouseMeter mit exakter Berechnung

    • name22
    • 2. April 2010 um 17:10

    So, extra für PrideRage :P : Version 1.1 mit attraktiverem Design. :thumbup:

  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 15:56

    Er schreibt einen Bot und testet es mit CheatEngine :D

  • Doodle Jump für Pc

    • name22
    • 2. April 2010 um 12:03
    Zitat

    ich glaube mit meiner Methode funktioniert das nur bei Quadratischen Bildern. :S


    Ansonsten werden sie leicht verzerrt.

  • [Beendet] µitLight April - Mitte Juni

    • name22
    • 2. April 2010 um 11:21

    Ich denke das wird lustig :D
    Für die optische Darstellung des Captchas verwende ich natürlich GDI+^^
    Jetzt muss ich mich nur noch mit Pointern beschäftigen :(

  • MouseMeter mit exakter Berechnung

    • name22
    • 2. April 2010 um 03:18

    Hier gab es glaube ich schon einmal so ein Script, aber meins funktioniert auf jeden Fall und kann noch mehr :P
    Es wird die mit dem Mauszeiger zurückgelegte Strecke in vielen Einheiten angezeigt.

    Die Geschwindigkeits Anzeige ist zwar noch ein wenig verbuggt, aber der Rest stimmt exakt (Ich hab nachgemessen ^^ ).

    (Damit das Script eure PPI berechnen kann, müsst ihr eure Bildschirmdiagonale in Zoll angeben.)

    Edit: Habe jetzt statt Round, Floor verwendet. Ansonsten wird 0.5 Cm in 1Cm umgewandelt ;)

    Version 1.0:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $iDeskDiag = IniRead("Data.ini", "Const", "DeskDiagInch", "Error")
    If $iDeskDiag = "Error" Then
    $iDeskDiag = InputBox("Bildschirmdiagonale", "Länge der Bildschirmdiagonale in Zoll: ", "17")
    If StringReplace($iDeskDiag, " ", "") = "" Then Exit
    IniWrite("Data.ini", "Const", "DeskDiagInch", $iDeskDiag)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $PPI = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / $iDeskDiag
    $PPCm = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / ($iDeskDiag * 2.54)

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("MouseMeter", 165, 275)
    $Label1 = GUICtrlCreateLabel("Zurückgelegte Strecke:", 10, 10, 155)
    GUICtrlSetFont($Label1, 10)
    $Label2 = GUICtrlCreateLabel("Zentimeter:", 10, 40)
    $Label3 = GUICtrlCreateLabel("0", 10, 55, 70)
    $Label4 = GUICtrlCreateLabel("Meter:", 10, 75)
    $Label5 = GUICtrlCreateLabel("0", 10, 90, 70)
    $Label6 = GUICtrlCreateLabel("Inch:", 10, 110)
    $Label7 = GUICtrlCreateLabel("0", 10, 125, 70)
    $Label8 = GUICtrlCreateLabel("Pixel:", 10, 145)
    $Label9 = GUICtrlCreateLabel("0", 10, 160, 70)
    $Label10 = GUICtrlCreateLabel("Geschwindigkeit:", 10, 180, 155)
    GUICtrlSetFont($Label10, 10)
    $Label11 = GUICtrlCreateLabel("Meter/Sekunde:", 10, 205)
    $Label12 = GUICtrlCreateLabel("0", 10, 220, 70)
    $Label13 = GUICtrlCreateLabel("Meter/Sekunde (Durchschnitt):", 10, 235)
    $Label14 = GUICtrlCreateLabel("0", 10, 250, 70)
    $Reset = GUICtrlCreateButton("Zurücksetzen", 90, 75, 70, 25)
    $Exit = GUICtrlCreateButton("Beenden", 90, 105, 70, 25)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    $aPosOld = MouseGetPos()
    $iDistance = 0

    [/autoit] [autoit][/autoit] [autoit]

    $iTime = TimerInit()
    AdlibRegister("_Update", 30)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Exit
    Exit
    Case $Reset
    $iTime = TimerInit()
    $iDistance = 0
    _Update()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Update()
    $iTime2 = TimerInit()
    $aPosNew = MouseGetPos()
    $iDiff = _GetPointsDistance($aPosOld[0], $aPosOld[1], $aPosNew[0], $aPosNew[1])
    $iDistance += $iDiff
    GUICtrlSetData($Label3, Floor($iDistance / $PPCm))
    GUICtrlSetData($Label5, Round($iDistance / $PPCm / 100, 2))
    GUICtrlSetData($Label7, Round($iDistance / $PPI, 1))
    GUICtrlSetData($Label9, Floor($iDistance))
    GUICtrlSetData($Label12, Floor(($iDiff / $PPCm / 100) / (TimerDiff($iTime2) / 1000)))
    GUICtrlSetData($Label14, Round(($iDistance / $PPCm / 100) / (TimerDiff($iTime) / 1000), 2))
    $aPosOld[0] = $aPosNew[0]
    $aPosOld[1] = $aPosNew[1]
    EndFunc ;==>_Update

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetPointsDistance($iPointX1, $iPointY1, $iPointX2, $iPointY2)
    Return Sqrt(($iPointX1 - $iPointX2) ^ 2 + ($iPointY1 - $iPointY2) ^ 2)
    EndFunc ;==>_GetPointsDistance

    [/autoit]

    Version 1.1 (Besseres Design)
    (Diese Version ist ein Topmost Fenster und hat außerdem keine Titelleiste, daher muss man einfach in das Fenster reinklicken um es zu verschieben)
    Jetzt wird das Fenster mit leichter Verzögerung an die aktuelle Position gebracht.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $iGUIWidth = 165
    $iGUIHeight = 290
    $iX = @DesktopWidth - $iGUIWidth + $iGUIWidth / 2
    $iY = @DesktopHeight - $iGUIHeight + $iGUIHeight / 2

    [/autoit] [autoit][/autoit] [autoit]

    $iDeskDiag = IniRead("Data.ini", "Const", "DeskDiagInch", "Error")
    If $iDeskDiag = "Error" Then
    $iDeskDiag = InputBox("Bildschirmdiagonale", "Länge der Bildschirmdiagonale in Zoll: ", "17")
    If StringReplace($iDeskDiag, " ", "") = "" Then Exit
    IniWrite("Data.ini", "Const", "DeskDiagInch", $iDeskDiag)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $PPI = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / $iDeskDiag
    $PPCm = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / ($iDeskDiag * 2.54)

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("MouseMeter", $iGUIWidth, $iGUIHeight, $iX - $iGUIWidth / 2, $iY - $iGUIHeight / 2, $WS_POPUP, $WS_EX_TOPMOST)
    GUISetBkColor(0x545454, $hWnd)
    $Label1 = GUICtrlCreateLabel("Zurückgelegte Strecke:", 10, 10, 155)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("Zentimeter:", 10, 40)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label3 = GUICtrlCreateLabel("0", 10, 55, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("Meter:", 10, 75)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label5 = GUICtrlCreateLabel("0", 10, 90, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label6 = GUICtrlCreateLabel("Inch:", 10, 110)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label7 = GUICtrlCreateLabel("0", 10, 125, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label8 = GUICtrlCreateLabel("Pixel:", 10, 145)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label9 = GUICtrlCreateLabel("0", 10, 160, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label10 = GUICtrlCreateLabel("Geschwindigkeit:", 10, 180, 155)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetFont(-1, 10)
    $Label11 = GUICtrlCreateLabel("Meter/Sekunde:", 10, 205)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label12 = GUICtrlCreateLabel("0", 10, 220, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label13 = GUICtrlCreateLabel("Meter/Sekunde (Durchschnitt):", 10, 235, 100, 50)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label14 = GUICtrlCreateLabel("0", 10, 265, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Reset = GUICtrlCreateButton("Zurücksetzen", 90, 75, 70, 25)
    $Exit = GUICtrlCreateButton("Beenden", 90, 105, 70, 25)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    WinSetTrans($hWnd, "", 200)

    [/autoit] [autoit][/autoit] [autoit]

    $aPosOld = MouseGetPos()
    $iDistance = 0

    [/autoit] [autoit][/autoit] [autoit]

    $iTime = TimerInit()
    AdlibRegister("_Update", 30)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE, $Exit
    Exit
    Case $Reset
    $iTime = TimerInit()
    $iDistance = 0
    _Update()
    Case $GUI_EVENT_PRIMARYDOWN
    _SetPos()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Update()
    $iTime2 = TimerInit()
    $aPosNew = MouseGetPos()
    $iDiff = _GetPointsDistance($aPosOld[0], $aPosOld[1], $aPosNew[0], $aPosNew[1])
    $iDistance += $iDiff
    GUICtrlSetData($Label3, Floor($iDistance / $PPCm))
    GUICtrlSetData($Label5, Round($iDistance / $PPCm / 100, 2))
    GUICtrlSetData($Label7, Round($iDistance / $PPI, 1))
    GUICtrlSetData($Label9, Floor($iDistance))
    GUICtrlSetData($Label12, Floor(($iDiff / $PPCm / 100) / (TimerDiff($iTime2) / 1000)))
    GUICtrlSetData($Label14, Round(($iDistance / $PPCm / 100) / (TimerDiff($iTime) / 1000), 2))
    $aPosOld[0] = $aPosNew[0]
    $aPosOld[1] = $aPosNew[1]
    EndFunc ;==>_Update

    [/autoit] [autoit][/autoit] [autoit]

    Func _SetPos()
    Sleep(200)
    While _IsPressed("01")
    $aPosMouse = MouseGetPos()

    [/autoit] [autoit][/autoit] [autoit]

    $iDiffX = $iX - $aPosMouse[0]
    If $iDiffX < 0 Then $iDiffX *= -1
    $iDiffY = $iY - $aPosMouse[1]
    If $iDiffY < 0 Then $iDiffY *= -1

    [/autoit] [autoit][/autoit] [autoit]

    $iSpeedX = $iDiffX / 10
    $iSpeedY = $iDiffY / 10

    [/autoit] [autoit][/autoit] [autoit]

    If $iX < $aPosMouse[0] Then
    $iX += $iSpeedX
    ElseIf $iX > $aPosMouse[0] Then
    $iX -= $iSpeedX
    EndIf
    If $iY < $aPosMouse[1] Then
    $iY += $iSpeedY
    ElseIf $iY > $aPosMouse[1] Then
    $iY -= $iSpeedY
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($hWnd, "", $iX - $iGUIWidth / 2, $iY - $iGUIHeight / 2)
    Sleep(30)
    WEnd
    EndFunc ;==>_SetPos

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetPointsDistance($iPointX1, $iPointY1, $iPointX2, $iPointY2)
    Return Sqrt(($iPointX1 - $iPointX2) ^ 2 + ($iPointY1 - $iPointY2) ^ 2)
    EndFunc ;==>_GetPointsDistance

    [/autoit]

    Version 1.2 (statt Round wurde Floor verwendet)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $iGUIWidth = 165
    $iGUIHeight = 290
    $iX = @DesktopWidth - $iGUIWidth + $iGUIWidth / 2
    $iY = @DesktopHeight - $iGUIHeight + $iGUIHeight / 2

    [/autoit] [autoit][/autoit] [autoit]

    $iDeskDiag = IniRead("Data.ini", "Const", "DeskDiagInch", "Error")
    If $iDeskDiag = "Error" Then
    $iDeskDiag = InputBox("Bildschirmdiagonale", "Länge der Bildschirmdiagonale in Zoll: ", "17")
    If StringReplace($iDeskDiag, " ", "") = "" Then Exit
    IniWrite("Data.ini", "Const", "DeskDiagInch", $iDeskDiag)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $PPI = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / $iDeskDiag
    $PPCm = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / ($iDeskDiag * 2.54)

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("MouseMeter", $iGUIWidth, $iGUIHeight, $iX - $iGUIWidth / 2, $iY - $iGUIHeight / 2, $WS_POPUP, $WS_EX_TOPMOST)
    GUISetBkColor(0x545454, $hWnd)
    $Label1 = GUICtrlCreateLabel("Zurückgelegte Strecke:", 10, 10, 155)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("Zentimeter:", 10, 40)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label3 = GUICtrlCreateLabel("0", 10, 55, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("Meter:", 10, 75)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label5 = GUICtrlCreateLabel("0", 10, 90, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label6 = GUICtrlCreateLabel("Inch:", 10, 110)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label7 = GUICtrlCreateLabel("0", 10, 125, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label8 = GUICtrlCreateLabel("Pixel:", 10, 145)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label9 = GUICtrlCreateLabel("0", 10, 160, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label10 = GUICtrlCreateLabel("Geschwindigkeit:", 10, 180, 155)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetFont(-1, 10)
    $Label11 = GUICtrlCreateLabel("Meter/Sekunde:", 10, 205)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label12 = GUICtrlCreateLabel("0", 10, 220, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label13 = GUICtrlCreateLabel("Meter/Sekunde (Durchschnitt):", 10, 235, 100, 50)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label14 = GUICtrlCreateLabel("0", 10, 265, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Reset = GUICtrlCreateButton("Zurücksetzen", 90, 75, 70, 25)
    $Exit = GUICtrlCreateButton("Beenden", 90, 105, 70, 25)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    WinSetTrans($hWnd, "", 200)

    [/autoit] [autoit][/autoit] [autoit]

    $aPosOld = MouseGetPos()
    $iDistance = 0

    [/autoit] [autoit][/autoit] [autoit]

    $iTime = TimerInit()
    AdlibRegister("_Update", 30)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE, $Exit
    Exit
    Case $Reset
    $iTime = TimerInit()
    $iDistance = 0
    _Update()
    Case $GUI_EVENT_PRIMARYDOWN
    _SetPos()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Update()
    $iTime2 = TimerInit()
    $aPosNew = MouseGetPos()
    $iDiff = _GetPointsDistance($aPosOld[0], $aPosOld[1], $aPosNew[0], $aPosNew[1])
    $iDistance += $iDiff
    GUICtrlSetData($Label3, Floor($iDistance / $PPCm))
    GUICtrlSetData($Label5, Floor($iDistance / $PPCm / 100))
    GUICtrlSetData($Label7, Floor($iDistance / $PPI))
    GUICtrlSetData($Label9, Floor($iDistance))
    GUICtrlSetData($Label12, Round(($iDiff / $PPCm / 100) / (TimerDiff($iTime2) / 1000), 4))
    GUICtrlSetData($Label14, Round(($iDistance / $PPCm / 100) / (TimerDiff($iTime) / 1000), 4))
    $aPosOld[0] = $aPosNew[0]
    $aPosOld[1] = $aPosNew[1]
    EndFunc ;==>_Update

    [/autoit] [autoit][/autoit] [autoit]

    Func _SetPos()
    Sleep(200)
    While _IsPressed("01")
    $aPosMouse = MouseGetPos()

    [/autoit] [autoit][/autoit] [autoit]

    $iDiffX = $iX - $aPosMouse[0]
    If $iDiffX < 0 Then $iDiffX *= -1
    $iDiffY = $iY - $aPosMouse[1]
    If $iDiffY < 0 Then $iDiffY *= -1

    [/autoit] [autoit][/autoit] [autoit]

    $iSpeedX = $iDiffX / 10
    $iSpeedY = $iDiffY / 10

    [/autoit] [autoit][/autoit] [autoit]

    If $iX < $aPosMouse[0] Then
    $iX += $iSpeedX
    ElseIf $iX > $aPosMouse[0] Then
    $iX -= $iSpeedX
    EndIf
    If $iY < $aPosMouse[1] Then
    $iY += $iSpeedY
    ElseIf $iY > $aPosMouse[1] Then
    $iY -= $iSpeedY
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($hWnd, "", $iX - $iGUIWidth / 2, $iY - $iGUIHeight / 2)
    Sleep(30)
    WEnd
    EndFunc ;==>_SetPos

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetPointsDistance($iPointX1, $iPointY1, $iPointX2, $iPointY2)
    Return Sqrt(($iPointX1 - $iPointX2) ^ 2 + ($iPointY1 - $iPointY2) ^ 2)
    EndFunc ;==>_GetPointsDistance

    [/autoit]

    Dateien

    MouseMeter 1.0.au3 2,62 kB – 326 Downloads MouseMeter 1.2.au3 4,35 kB – 440 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™