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

Beiträge von John8

  • @ComSpec Problem mit Codepade

    • John8
    • 22. Januar 2013 um 17:51

    Persönlich hab ich den chcp Befehl noch nie verwendet, aber solltest du diesen nicht besser wie auf dieser Seite beschrieben nutzen?

  • Array oder String+Stringsplit schneller?

    • John8
    • 22. Januar 2013 um 17:39

    Hi,

    wenn du viel Wert auf Performance legst würde ich die ganz normale Array-Variante vorziehen.
    _ArrayAdd(...) braucht (wahrscheinlich) aufgrund des ständigen ReDims extrem lange, StringSplit(...) muss den Datensatz zum Schluss nochmals abarbeiten, deshalb ist auch diese Variante (etwas) langsamer als die Array Version.
    Hier mal ein Testskript, _E3() ist wie schon geschrieben am schnellsten:

    Timer-Test
    [autoit]

    #include <Array.au3>

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

    Global Const $iPasses = 10000

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

    _E1()
    _E2()
    _E3() ; => Am schnellsten!

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

    Func _E1()
    Local $hTimer, $sString, $aArray
    $hTimer = TimerInit()
    For $i = 0 To $iPasses
    $sString &= $i & '|'
    Next
    $aArray = StringSplit($sString, '|', 2)
    MsgBox(64, 'Finished E1 (StringSplit)', 'Time (ms): ' & Round(TimerDiff($hTimer), 2))
    ;_ArrayDisplay($aArray)
    EndFunc

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

    Func _E2()
    Local $hTimer, $aArray[1]
    $hTimer = TimerInit()
    For $i = 1 To $iPasses
    _ArrayAdd($aArray, $i)
    Next
    MsgBox(64, 'Finished E2 (_ArrayAdd)', 'Time (ms): ' & Round(TimerDiff($hTimer), 2))
    ;_ArrayDisplay($aArray)
    EndFunc

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

    Func _E3()
    Local $hTimer, $aArray[$iPasses]
    $hTimer = TimerInit()
    For $i = 0 To $iPasses-1
    $aArray[$i] = $i
    Next
    MsgBox(64, 'Finished E3 (Array)', 'Time (ms): ' & Round(TimerDiff($hTimer), 2))
    ;_ArrayDisplay($aArray)
    EndFunc

    [/autoit]
  • In Datei suchen

    • John8
    • 22. Januar 2013 um 17:03
    Zitat

    Muss ich dazu FileRead und strininstring machen oder gibt es eine bessere Möglichkeit?


    Ja, das wäre schon mal eine Möglichkeit.
    Ich glaube aber, dass es noch besser (schneller) wäre, größere Dateien zuerst in einzelne Zeilen/Abschnitte zu zerlegen.
    Eine Alternative zu StringInStr(...) wäre dabei StringRegExp(...), da reguläre Ausdrücke genutzt werden können und somit auch beispielsweise leicht nach mehreren Strings gesucht werden kann.

    Google sollte dir dabei auch helfen, besonders einige Links zum englischen Forum.

    Ansonsten gibt es schon derartige Suchprogramme, die schneller sind als sämtliche (pure) AutoIt Versionen, wie z.B. SearchMyFiles.

  • In Datei suchen

    • John8
    • 22. Januar 2013 um 16:47

    Moin,

    was meinst du mit String in dem Fall? Kann doch prinzipiell alles sein...
    Möchtest du zwischen Zahlen und Buchstaben unterscheiden?
    Oder eine Suchfunktion, die Dateien nach einer bestimmten (vom Benutzer) angegebenen Zeichenkette durchsucht?

  • Icon aus EXE mit bestimmter Größe in GUI einbetten

    • John8
    • 17. Januar 2013 um 16:26

    Hi Oscar,

    danke, funktioniert gut!

  • myAutorun - Die Alternative zur 'autorun.inf'

    • John8
    • 16. Januar 2013 um 17:56

    Hi,
    hab's selbst nicht laufen, aber so sollte es eigentlich funktionieren (s. Befehlsliste):

    Code
    Run=%drive%\text.exe


    oder eben

    Code
    Run=%drive%\text.bat


    Wäre gut wenn du geschrieben hättest, welchen Befehl du denn verwendest. ;)

  • [Tutorial] Sauber Programmieren

    • John8
    • 12. Januar 2013 um 15:56
    Zitat von chesstiger

    Genau genommen ist es das ja auch, aber GUICtrlCreate... gibt ja nunmal ein Handle zurück.


    Wenn man es allerdings ganz genau nimmt, sollte man aber $id für AutoIt-Controls verwenden, oder?

    Zitat von www.autoitscript.com/wiki/UDF-spec

    $h - Handle, usually to a file or window. NB: AutoIt handled controls return IDs, and so use $id instead.
    $id - An AutoIt control Id.

    Edit: Ok, hast du ja schon editiert. :D

  • 2012 --> 2013

    • John8
    • 1. Januar 2013 um 15:24

    Frohes Neues an alle! ;)

  • Weihnachtsscripting-Challenge

    • John8
    • 1. Januar 2013 um 15:23
    Zitat

    Naja...wie zu erwarten wurden keine Abgaben getätigt. Somit ist diese Challenge gewinnerlos beendet, die Preise hab ich anderoweitig verschenkt.

    Gun-Food bitte schliessen


    Hm, finde ich irgendwie schade, auch wenn ich selbst nicht mitgemacht habe (einfach keine Idee gehabt).
    Hast dir ja auch Mühe gegeben.

  • Hallo an ALLE...

    • John8
    • 28. Dezember 2012 um 17:14

    Willkommen im Forum! :)

  • Neues Logo

    • John8
    • 28. Dezember 2012 um 17:13

    Hi,

    find's auch gut, da könnte man sich dran gewöhnen. :D

  • Weihnachtswünsche

    • John8
    • 14. Dezember 2012 um 14:10

    Ich bin mir noch nicht richtig sicher, finde aber großen Gefallen an der AR.Drone.
    Mal schauen. :D

  • Dos Befehle Ausführen mit STDOut und Rückgabewert

    • John8
    • 14. Dezember 2012 um 14:01

    Alternativ kannst du auch

    Code
    %ERRORLEVEL%

    in eine Datei umleiten bzw. ausgeben lassen, aber die Lösung von eukalyptus ist um einiges schöner, auch wenn ich's nicht getestet habe.

  • [offen] Registry -Eintäge von AutoIt | Liste

    • John8
    • 14. Dezember 2012 um 13:43
    Zitat von Make-Grafik

    >> Aber ich möchte auch die Registry Einträge dazu haben. (Um mit Rechtsklick auf den entsprechenden Rechner agieren zu können)


    Das macht meiner Meinung nach nicht viel Sinn für ein portables AutoIt.
    Für mich heißt portabel, dass gerade diese Registry Einträge nicht genutzt/erstellt werden und das Programm keine (wenige) eigenen Spuren auf dem PC hinterlässt (oft auch aufgrund fehlender Rechte).
    Da könntest du doch genauso gut den offiziellen Installer auf dem Zielrechner nutzen, wenn du sowieso schon Registry Einträge vornimmst. ;)

    Dir sollten allerdings Programme wie Smarty Uninstaller oder Advanced Uninstaller, die eine Installation dokumentieren, dabei helfen.
    Auch nützlich kann Procmon.exe aus der SysinternalsSuite (btw sehr gute Programmsammlung) sein, denn das Programm hört ab, welche Änderungen ein Prozess am PC vornimmt.

  • Gui Hilfe

    • John8
    • 12. Dezember 2012 um 17:40

    Hi,

    den Code bitte demnächst in einen Spoiler mit AutoIt Tags setzen.
    Bei GUICreate(...)sind eckige Klammern, die da gar nicht hingehören.
    In der Hilfe verdeutlichen diese nur, dass die Parameter nicht zwangsläufig gesetzt werden müssen, sprich optional sind.
    Deshalb kann man sie in deinem Fall ganz weglassen.

    Hier der Code
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Player()

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

    Func Player()
    Local $Button_1, $Button_2, $msg
    GUICreate("Bruch&Dalles Player", 400, 300)

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

    Opt("GUICoordMode", 2)
    $Button_1 = GUICtrlCreateButton("Notepad ausführen", 10, 30, 100)
    $Button_2 = GUICtrlCreateButton("Button Test", 0, -1)

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

    GUISetState() ; Zeigt eine Dialogbox mit 2 Buttons an

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

    ; Die Schleife wiederholt sich, bis der Benutzer eine Beenden-Aktion auslöst
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Button_1
    Run('Notepad.exe') ; Öffnet Notepad
    Case $Button_2
    MsgBox(0, 'Test', 'Button 2 wurde gedrückt') ; Zeigt, dass Button2 gedrückt wurde
    EndSwitch
    WEnd
    EndFunc ;==>Player

    [/autoit]


    Edit:
    Mist, zu langsam. :D

  • Skript komplett pausieren

    • John8
    • 11. Dezember 2012 um 21:35

    Hi,

    schau dir mal die Hilfe zu HotKeySet ( "key" [, "function"] ) an, da ist ein Beispielcode, der den komplette Skript pausiert. ;)

  • Happy Birthday… Forum

    • John8
    • 7. Dezember 2012 um 20:29
    Zitat von peethebee

    Macht's mir alle weiter so, auf die nächsten glorreichen Sieben!


    Auf jeden Fall!
    Alles gute AutoIt.de.

    Edit: Ich hoffe es wird noch (mindestens) bis zum Stack-Overflow weitergehen! :D

    [autoit]

    _AutoItDE(2012)

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

    Func _AutoItDE($i)
    ConsoleWrite(@LF & 'Jahr: ' & $i)
    _AutoItDE($i+1)
    EndFunc

    [/autoit]
  • ShellExecute verständnis frage !

    • John8
    • 3. Dezember 2012 um 21:13

    Siehe Edit meines letzten Posts, habe noch nachträglich editiert, das mit der Statusbar habe ich zuerst überlesen. :)

  • ShellExecute verständnis frage !

    • John8
    • 3. Dezember 2012 um 18:13

    Hi,

    Zitat

    Beispiel: Die Idee war eine Progessbar so lange durch laufen zulassen bis ShellExecute fertig ist.


    Das wird leider kaum möglich sein, da du ja nicht abschätzen kannst, wann ein externes Programm mit ShellExecute(...) gestartet ist.
    Folglich bringt eine Progressbar nichts und sie wird nur von 0 auf 100 "springen".

    Die If-Bedingung

    [autoit]

    If $execute = 0 then

    [/autoit]

    wird außerdem nie ausgeführt (oder nur wenn ein Fehler bei ShellExecute vorliegt), da der Wert von ShellExecute in eine Variable geladen wird, die sich nicht automatisch aktualisiert.

  • Gurkenbier stellt sich einmal kurz vor...

    • John8
    • 1. Dezember 2012 um 14:40

    Willkommen und viel Spaß im Forum, Gurkenbier!
    Lustiger Nickname... :D

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™