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. Oscar

Beiträge von Oscar

  • OnEvent in sich aufrufenden Funktionen

    • Oscar
    • 15. Januar 2015 um 19:17

    Beim OnEventMode musst Du die Funktion, die per Event aufgerufen wird, wieder verlassen (dort darf keine Dauerschleife drin sein).
    Für die Zeit, die von der aufgerufenen Funktion benötigt wird, funktionieren die anderen Events nicht mehr. Im Extremfall kommt dann von Windows die Meldung, dass das Programm nicht mehr reagiert.
    Wie "draien" das schon richtig gezeigt hat, müsstest Du das in die "Warteschleife" im Hauptteil verlagern.

    Dein Beispiel 1 im ersten Post funktioniert, weil Du die Funktion "start" direkt aufrufst (ohne Event). Beim Klick auf den Button wird dann aber ein Event ausgelöst und in die Funktion gesprungen. Solange wie die Funktion dann ausgeführt wird, ist der EventMode blockiert.

  • Achterrandom = 50

    • Oscar
    • 14. Januar 2015 um 15:16

    Stimmt, es waren 8 Zahlen gefordert. X/
    Dadurch werden aber die Zufallszahlen ziemlich eingeschränkt. Denn wenn es 8 Zahlen sein müssen (ohne Doppelte) und es muss 50 als Gesamtsumme rauskommen, dann können da kaum große Zahlen vorkommen.
    Ich habe mein Script mal angepasst, das kann allerdings recht lange dauern (> 2Min.):

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $iSum = 50
    Global $aNumbers[$iSum], $aTemp, $aRandom[8], $iRandom, $iTotal = 0, $iCount = 0
    For $i = 0 To $iSum - 1
    $aNumbers[$i] = $i + 1
    Next
    Global $iTimer = TimerInit()
    Do
    $iTotal = 0
    $aTemp = $aNumbers
    For $i = 0 To UBound($aRandom) - 1
    $iRandom = Random(0, UBound($aTemp) - 1 - $i, 1)
    $aRandom[$i] = $aTemp[$iRandom]
    $iTotal += $aTemp[$iRandom]
    $aTemp[$iRandom] = $aTemp[UBound($aTemp) - 1 - $i]
    Next
    $iCount += 1
    Until $iTotal = $iSum
    ConsoleWrite(StringFormat('Summe: %i, benötigte Durchgänge: %i, benötigte Zeit: %i ms\n', $iSum, $iCount, TimerDiff($iTimer)))
    _ArrayDisplay($aRandom)

    [/autoit]
  • Achterrandom = 50

    • Oscar
    • 14. Januar 2015 um 14:39

    chesstiger : Ich denke, sie meint Ganzzahlen und keine Doppelten.

    Ich hätte da eine BruteForce-Methode zu bieten:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $iSum = 50
    Global $aNumbers[$iSum], $aTemp, $aRandom[5], $iRandom, $iTotal = 0, $iCount = 0
    For $i = 0 To $iSum - 1
    $aNumbers[$i] = $i + 1
    Next
    Global $iTimer = TimerInit()
    Do
    $iTotal = 0
    $aTemp = $aNumbers
    For $i = 0 To 4
    $iRandom = Random(0, UBound($aTemp) - 1 - $i, 1)
    $aRandom[$i] = $aTemp[$iRandom]
    $iTotal += $aTemp[$iRandom]
    $aTemp[$iRandom] = $aTemp[UBound($aTemp) - 1 - $i]
    Next
    $iCount += 1
    Until $iTotal = $iSum
    ConsoleWrite(StringFormat('Summe: %i, Benötigte Durchgänge: %i, benötigte Zeit: %i ms\n', $iSum, $iCount, TimerDiff($iTimer)))
    _ArrayDisplay($aRandom)

    [/autoit]
  • ist 8 = 9 ?

    • Oscar
    • 13. Januar 2015 um 05:22

    In "der" Übersicht tauche ich überhaupt nicht auf. Warum auch immer?
    In der Forenansicht "Welche Benutzer online sind" schon, aber bei "Benutzer, die heute online waren" nie.
    Seit der Boardumstellung sind noch einige Baustellen offen...

  • Msgbox bei ini veränderung ausgeben

    • Oscar
    • 12. Januar 2015 um 20:52

    Hier ist mal ein Beispielscript zu "_WinAPI_ShellChangeNotifyRegister":

    Spoiler anzeigen
    [autoit]


    #include <APIShellExConstants.au3>
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPI.au3>
    #include <WinAPIShellEx.au3>
    #include <GuiListView.au3>

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

    Opt('TrayAutoPause', 0)
    OnAutoItExitRegister('OnAutoItExit')

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

    Global $sPath = 'c:\temp' ; <- das zu überwachene Verzeichnis (inkl. Unterverzeichnisse)
    Global $sInput
    Global $SOURCES = BitOR($SHCNRF_INTERRUPTLEVEL, $SHCNRF_SHELLLEVEL, $SHCNRF_RECURSIVEINTERRUPT)

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

    Global $hGui = GUICreate('Verzeichnis-Überwachung', 800, 480)
    GUISetFont(12, 400, 0, 'Arial', $hGui, 5)
    GUICtrlCreateLabel('Verzeichnis:', 10, 23, 85, 28)
    Global $idPath = GUICtrlCreateInput($sPath, 100, 20, 494, 24)
    Global $idSelectPath = GUICtrlCreateButton('...', 600, 19, 30, 25)
    Global $idChangeLV = GUICtrlCreateListView('Uhrzeit|Änderung|Datei / Verzeichnis', 10, 70, 780, 400)
    _GUICtrlListView_SetColumnWidth($idChangeLV, 0, 160)
    _GUICtrlListView_SetColumnWidth($idChangeLV, 1, 190)
    _GUICtrlListView_SetColumnWidth($idChangeLV, 2, 380)

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

    Global $iMsg = _WinAPI_RegisterWindowMessage('SHELLCHANGENOTIFY')
    GUIRegisterMsg($iMsg, 'WM_SHELLCHANGENOTIFY')
    Global $iID = _WinAPI_ShellChangeNotifyRegister($hGui, $iMsg, $SHCNE_ALLEVENTS, $SOURCES, $sPath, 1)
    If @error Then Exit MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', 'Window does not registered.')

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

    GUISetState(@SW_SHOW, $hGui)
    WinSetOnTop($hGui, '', 1)
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $idSelectPath
    $sInput = FileSelectFolder('Bitte das Verzeichnis auswählen...', $sPath, 1, '', $hGui)
    If FileExists($sInput) Then
    $sPath = $sInput
    GUICtrlSetData($idPath, $sPath)
    If $iID Then _WinAPI_ShellChangeNotifyDeregister($iID)
    $iID = _WinAPI_ShellChangeNotifyRegister($hGui, $iMsg, $SHCNE_ALLEVENTS, $SOURCES, $sPath, 1)
    EndIf
    EndSwitch
    WEnd

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

    Func OnAutoItExit()
    If $iID Then _WinAPI_ShellChangeNotifyDeregister($iID)
    EndFunc ;==>OnAutoItExit

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

    Func WM_SHELLCHANGENOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg
    Local $sPath = _WinAPI_ShellGetPathFromIDList(DllStructGetData(DllStructCreate('dword Item1; dword Item2', $wParam), 'Item1'))
    Local $sNew = _WinAPI_ShellGetPathFromIDList(DllStructGetData(DllStructCreate('dword Item1; dword Item2', $wParam), 'Item2'))
    ConsoleWrite($sNew & @CR)
    If $sPath Then
    Switch $lParam
    Case $SHCNE_MKDIR
    GUICtrlCreateListViewItem(_Now() & '|Verzeichnis erstellt|' & $sPath, $idChangeLV)
    Case $SHCNE_RMDIR
    GUICtrlCreateListViewItem(_Now() & '|Verzeichnis gelöscht|' & $sPath, $idChangeLV)
    Case $SHCNE_RENAMEFOLDER
    GUICtrlCreateListViewItem(_Now() & '|Verzeichnis umbenannt|' & $sPath & ' -> ' & $sNew, $idChangeLV)
    Case $SHCNE_RENAMEITEM
    GUICtrlCreateListViewItem(_Now() & '|Datei umbenannt|' & $sPath & ' -> ' & $sNew, $idChangeLV)
    Case $SHCNE_CREATE
    GUICtrlCreateListViewItem(_Now() & '|Datei erstellt|' & $sPath, $idChangeLV)
    Case $SHCNE_DELETE
    GUICtrlCreateListViewItem(_Now() & '|Datei gelöscht|' & $sPath, $idChangeLV)
    EndSwitch
    EndIf
    EndFunc ;==>WM_SHELLCHANGENOTIFY

    [/autoit]
  • Msgbox bei ini veränderung ausgeben

    • Oscar
    • 12. Januar 2015 um 15:04

    Warum derart kompliziert?
    Schau Dir mal "_WinAPI_ShellChangeNotifyRegister" an.
    Damit registrierst Du das Verzeichnis und bekommst alle Änderungen in diesem Verzeichnis auf dem "Silbertablett". :)

  • Gefilterte Eingabe: InputFilter.au3 (1.1)

    • Oscar
    • 9. Januar 2015 um 19:26

    :thumbup: Klasse gemacht!

    Funktioniert sehr gut! Habe ich mir gleich mal abgespeichert. Kann ich bestimmt mal gebrauchen.

  • GUICtrlCreateCombo

    • Oscar
    • 8. Januar 2015 um 17:08

    Ja, mit GuiCtrlRead!

  • Error: Subscript used on non-accessible variable

    • Oscar
    • 2. Januar 2015 um 17:33

    Script posten!
    Oder falls das doch wieder nur ein Bot werden soll, dann: Thema löschen und Forenregeln beachten!

  • Frohe Weihnachten!

    • Oscar
    • 24. Dezember 2014 um 16:56

    Ich wünsche euch allen auch ein frohes Weihnachtsfest und dass ihr die Weihnachtsschlemmerei gesund und munter übersteht. :D

  • Geschwindigkeitsoptimierung in AutoIt

    • Oscar
    • 21. Dezember 2014 um 08:53

    Dass ist das, was ich in Post#8 schon anmerkte. Deshalb ist es auch sinnvoll die Tests mit dem Script von GtaSpider aus Post#13 zu machen.

  • Inputbox nur Dezimalzahlen

    • Oscar
    • 19. Dezember 2014 um 16:53

    Ok, dann aber noch fehlerbereinigt (lokale Variablen deklariert) und Anpassung an "$hWnd = Handle vom Fenster" und "$ilParam = Handle vom Edit-Control":

    Spoiler anzeigen
    [autoit]


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

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

    $hGui = GUICreate('Test')
    $cInput = GUICtrlCreateInput('', 20, 20, 150, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

    Do
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Until 0

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $iIDFrom, $iCode, $iCurrentCol, $sRead, $sReadL, $sReadR
    $iIDFrom = BitAND($iwParam, 0xFFFF)
    $iCode = BitShift($iwParam, 16)
    If $iIDFrom = $cInput And $iCode = $EN_CHANGE Then
    $sRead = GUICtrlRead($iIDFrom)
    If Not StringRegExp($sRead, '^\d*,?(\d+)?$') Then
    $iCurrentCol = ControlCommand($hWnd, '', $iIDFrom, 'GetCurrentCol', '')
    $sReadL = StringLeft($sRead, $iCurrentCol - 2)
    $sReadR = StringMid($sRead, $iCurrentCol)
    GUICtrlSetData($iIDFrom, $sReadL & $sReadR)
    _SendMessage($ilParam, $EM_SETSEL, $iCurrentCol - 2, $iCurrentCol - 2)
    EndIf
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Inputbox nur Dezimalzahlen

    • Oscar
    • 19. Dezember 2014 um 12:47

    Ich würde das noch etwas abändern:

    Spoiler anzeigen
    [autoit]


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

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

    $hGui = GUICreate('Test')
    $cInput = GUICtrlCreateInput('', 20, 20, 150, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

    Do
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Until 0

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $iIDFrom, $iCode, $iCurrentCol
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; hier wird die Control-ID übergeben (Lo-Word von $iwParam)
    $iCode = BitShift($iwParam, 16) ; die Windows-Message (Hi-Word von $iwParam)
    If $iIDFrom = $cInput And $iCode = $EN_CHANGE Then ; wenn die Control-ID mit der vom Input übereinstimmt und die Änderungsmessage vorhanden ist, dann...
    $iCurrentCol = ControlCommand($hGui, '', $cInput, 'GetCurrentCol', '') ; Momentane Cursor-Position holen
    GUICtrlSetData($iIDFrom, StringRegExpReplace(GUICtrlRead($iIDFrom), '[^\d,]', '')) ; alle Zeichen, die keine Zahlen oder das Komma sind, löschen
    _SendMessage(GUICtrlGetHandle($iIDFrom), $EM_SETSEL, $iCurrentCol - 1, $iCurrentCol - 1) ; den Cursor wieder auf die alte Position setzen
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Convert to Uint32, Uint8 oder int16

    • Oscar
    • 16. Dezember 2014 um 17:59

    So:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    ; UID 33688 as uint32 (0x98 0x83 0x00 0x00)
    $uid = 33688
    $array = uint32_Array($uid)
    _ArrayDisplay($array)
    $string = uint32_String($uid)
    MsgBox(0, '', $string)

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

    Func uint32_Array($uint32)
    Local $string = Hex(Int($uint32, 1), 8), $aOut[4]
    For $i = 0 To 3
    $aOut[3 - $i] = '0x' & StringMid($string, $i * 2 + 1, 2)
    Next
    Return $aOut
    EndFunc

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

    Func uint32_String($uint32)
    Local $string = Hex(Int($uint32, 1), 8), $sOut
    For $i = 0 To 3
    $sOut = StringMid($string, $i * 2 + 1, 2) & $sOut
    Next
    Return $sOut
    EndFunc

    [/autoit]
  • Geschwindigkeitsoptimierung in AutoIt

    • Oscar
    • 13. Dezember 2014 um 15:26

    Nachdem ich jetzt alle Beispiele durchprobiert habe, bin ich doch etwas überrascht bezüglich der Ausführungsgeschwindigkeit im X64-Modus.
    Wurde da mittlerweile so viel optimiert bei AutoIt (v3.3.12.0)?
    Ich meine mich erinnern zu können, dass es bei älteren Versionen keinen so gravierenden Unterschied gab, bzw. dass der X64-Modus sogar langsamer war.
    Könnt ihr das bestätigen oder läuft bei mir irgendwas im Hintergrund, was zu diesen Unterschieden führt. Hier mal die Ergebnisse mit dem Test von GtaSpider aus Post#13:

    Spoiler anzeigen


    >Result with AutoIt 3.3.12.0 x86.
    >CPU: AMD Phenom(tm) II X4 940 Processor X64
    >RAM: 5.19/8.00 GB
    >OS: WIN_7 (7601) X64
    >Parameter: 100
    +Func For (1) needs for 4095 runs 1482.29 ms (Average: 0.3620 ms) --> 1.0x
    -Func While (2) needs for 4095 runs 1783.99 ms (Average: 0.4357 ms) --> 1.2x
    !Func Do (3) needs for 4095 runs 1801.57 ms (Average: 0.4399 ms) --> 1.2x

    >Result with AutoIt 3.3.12.0 x64.
    >CPU: AMD Phenom(tm) II X4 940 Processor X64
    >RAM: 5.19/8.00 GB
    >OS: WIN_7 (7601) X64
    >Parameter: 100
    +Func For (1) needs for 4095 runs 951.56 ms (Average: 0.2324 ms) --> 1.0x
    -Func While (2) needs for 4095 runs 1169.11 ms (Average: 0.2855 ms) --> 1.2x
    !Func Do (3) needs for 4095 runs 1183.06 ms (Average: 0.2889 ms) --> 1.2x

  • Pseudo Desktop - Konstruktive Kritik :-)

    • Oscar
    • 12. Dezember 2014 um 17:48

    Generell ist das mit dem Haupt- und Nebenthreads in Ordnung.
    Nur solltest Du neue Versionen stets im ersten Beitrag (bearbeiten anklicken) posten. Ansonsten weiß man nicht (ohne komplett durchzuscrollen) welche Version gerade die Aktuelle ist.

  • Dateiname beim Kopieren notfalls ändern?

    • Oscar
    • 11. Dezember 2014 um 10:16

    Dann wird aber der Counter nicht hochgezählt und das "(1)" erscheint nach der Dateierweiterung!
    "test(1).exe" wird dann zu "test(1).exe(1)" und so soll es ja nicht sein.

  • Geschwindigkeitsoptimierung in AutoIt

    • Oscar
    • 11. Dezember 2014 um 10:13

    AspirinJunkie: Interessante Optimierungsmöglichkeiten! Einiges davon habe ich auch noch nicht gewusst. :thumbup:
    Was mir aber bei Deinen Beispielen noch aufgefallen ist, ist, dass die Beispiele im X64-Modus (AutoIt v3.3.12.0) schneller abgearbeitet werden.
    Also mit:

    [autoit]

    #AutoIt3Wrapper_UseX64=y

    [/autoit]


    in der ersten Zeile.

  • Geschwindigkeitsoptimierung in AutoIt

    • Oscar
    • 11. Dezember 2014 um 09:49

    Nein Alina, er teilt das Ergebnis von MemGetStats zweimal durch 1024 und das ist korrekt, da MemGetStats das Ergebnis als KB zurückgibt. Durch 1024 geteilt ergibt MB und nochmal durch 1024 geteilt ergibt GB.

    GtaSpider : Bei mir erscheint als Ergebnis Deines Testscript auch, das For...Next am schnellsten ist, aber in der Schleife wird ja auch nichts ausgeführt.
    Wenn man das Script etwas abwandelt (praxisnäher gestaltet), dann relativiert sich das Ergebnis etwas. For...Next ist zwar noch immer am schnellsten, aber nicht derart krass.

    Spoiler anzeigen
    [autoit]


    ;By GtaSpider
    #include <Array.au3>

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

    #Region Hier ggf Daten verändern
    Global Const $iNumberOfTestFuncs = 3;Wie viele Funktionen es gibt (werden benannt nach _TestFunc_1, _TestFunc_2, ..., _TestFunc_N)
    Global Const $iNumberOfTestRuns = 10;0xfff;Wie viele Tests pro Funktion

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

    Global Const $aFuncNames[$iNumberOfTestFuncs + 1] = ["", _
    "For", _;Funktionsname 1
    "While", _;Funktionsname 2
    "Do"];Funktionsname 3

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

    Global Const $vParam = 1000;Parameter für die Funktionen

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

    Func _TestFunc_1($vParam = False);funktion 1
    Local $j
    For $i = 1 To $vParam
    $j += 1
    ToolTip($j)
    Next
    ToolTip('')
    EndFunc ;==>_TestFunc_1

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

    Func _TestFunc_2($vParam = False);funktion 2
    Local $i
    While $i < $vParam
    $i += 1
    ToolTip($i)
    WEnd
    ToolTip('')
    EndFunc ;==>_TestFunc_2

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

    Func _TestFunc_3($vParam = False);funktion 3
    Local $i
    Do
    $i += 1
    ToolTip($i)
    Until $i >= $vParam
    ToolTip('')
    EndFunc ;==>_TestFunc_3

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

    Func _TestFunc_4($vParam = False);funktion 4
    ;...
    EndFunc ;==>_TestFunc_4

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

    ;...

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

    #EndRegion Hier ggf Daten verändern

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

    _Main()

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

    Func _Main()
    Local $hTimer, $nFuncCounter, $nTestCounter, $iMinIndex, $iMaxIndex, $sCPUname, $aMemStats, $sAutX64
    Local $aiTimers[$iNumberOfTestFuncs + 1] = [$iNumberOfTestFuncs]

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

    ConsoleWrite(StringFormat(">Start %d number of funcs á %d number of tests with parameter %s\r\n", $iNumberOfTestFuncs, $iNumberOfTestRuns, $vParam))

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

    For $nFuncCounter = 1 To $iNumberOfTestFuncs
    ConsoleWrite(StringFormat(">Start Test %d/%d", $nFuncCounter, $iNumberOfTestFuncs))
    $hTimer = TimerInit()
    #Region SAFE
    For $nCounter = 1 To $iNumberOfTestRuns
    Call("_TestFunc_" & $nFuncCounter, $vParam)
    Next
    $aiTimers[$nFuncCounter] = TimerDiff($hTimer)
    #EndRegion SAFE
    ConsoleWrite(StringFormat(" --> %f ms\r\n", $aiTimers[$nFuncCounter]))
    Next

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

    $iMinIndex = _ArrayMinIndex($aiTimers, 1, 1)
    $iMaxIndex = _ArrayMaxIndex($aiTimers, 1, 1)

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

    $sCPUname = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString")
    $aMemStats = MemGetStats()
    $sAutX64 = "x86"
    If @AutoItX64 Then $sAutX64 = "x64"

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

    ;Geht nicht da wir abwärtskompatibel bleiben sollten. (Ternärer Operator)
    ;~ ConsoleWrite(StringFormat("\r\n>Result with AutoIt %s %s.\r\n>CPU: %s %s\r\n>RAM: %.2f/%.2f GB\r\n>OS: %s (%d) %s\r\n", @AutoItVersion, (@AutoItX64 ? "x64" : "x86"), $sCPUname, @CPUArch, $aMemStats[2] / 1024 / 1024, $aMemStats[1] / 1024 / 1024, @OSVersion, @OSBuild, @OSArch))

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

    ConsoleWrite(StringFormat("\r\n>Result with AutoIt %s %s.\r\n>CPU: %s %s\r\n>RAM: %.2f/%.2f GB\r\n>OS: %s (%d) %s\r\n>Parameter: %s\r\n", @AutoItVersion, $sAutX64, $sCPUname, @CPUArch, $aMemStats[2] / 1024 / 1024, $aMemStats[1] / 1024 / 1024, @OSVersion, @OSBuild, @OSArch,$vParam))

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

    For $nFuncCounter = 1 To $iNumberOfTestFuncs
    Switch $nFuncCounter
    Case $iMinIndex
    ConsoleWrite("+");schnellster bekommt ein Plus (Grün in SciTE)
    Case $iMaxIndex
    ConsoleWrite("!");langsamster wird Rot dargestellt
    Case Else
    ConsoleWrite("-");Neutral Gelb
    EndSwitch
    ConsoleWrite(StringFormat("Func %s (%d)\tneeds for %d runs %.2f ms (Average: %.4f ms)\t--> ", $aFuncNames[$nFuncCounter], $nFuncCounter, $iNumberOfTestRuns, $aiTimers[$nFuncCounter], $aiTimers[$nFuncCounter] / $iNumberOfTestRuns))
    Switch $nFuncCounter
    Case $iMinIndex
    ConsoleWrite(StringFormat("1.0x\r\n"))
    Case Else
    ConsoleWrite(StringFormat("%.1fx\r\n", $aiTimers[$nFuncCounter] / $aiTimers[$iMinIndex]))
    EndSwitch

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

    Next
    ConsoleWrite(StringFormat("\r\n"))
    EndFunc ;==>_Main

    [/autoit]
  • Dateiname beim Kopieren notfalls ändern?

    • Oscar
    • 11. Dezember 2014 um 09:11

    Schau Dir mal Zeile 43 in Deinem Script an! Da fehlt was! :rolleyes:

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™