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

Beiträge von Micha_he

  • consolewrite and read

    • Micha_he
    • 26. November 2008 um 11:32

    ConsoleWrite schreibt, wie die AutoIT-Hilfe es erklärt, Daten in den StdOutStream. Die ist aber im Prizip erstmal 'fast' nutzlos. Ich sage extra fast.

    Bei den Beispiel-Scripten, die oben wahrscheinlich gemeint waren, ist es eine weitere Ausgabemöglichkeit, die der SciTE in seinem Programmfenster anzeigen kann.
    Startet man das Script außerhalb des SciTE, dann sieht man eben NIX !

  • Nur eine bestimmte funktion pausieren

    • Micha_he
    • 25. November 2008 um 18:04
    Zitat von Oscar

    Schau Dir in der Hilfe mal AdlibEnable() an.
    Damit kannst Du eine Funktion alle xxx Millisekunden ausführen lassen.

    Er will doch eine Funktion aussetzen und nicht alle x Sekunden ausführen !

    Ich würde es wie folgt machen:

    Spoiler anzeigen
    [autoit]

    Global $enabled = True

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

    ; Alle 12 Sekunden wechselt EIN/AUS
    AdLibEnable("_switch",12000)

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

    While 1

    If $enabled = True Then
    msgbox(0,"","Eingeschaltet")
    EndIf

    ; Dieser Teil wird dann immer ausgeführt !
    Sleep(100)

    Wend

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

    Func _Switch()
    $enabled = Not $Enabled

    [/autoit]

    Diese einfache Lösung wechselt halt nur alle 12s gleichmäßig zwischen EIN und AUS.

  • Problem bei echo-Ausgabe von Pipes "|"

    • Micha_he
    • 25. November 2008 um 17:30
    Zitat von funkey

    @Xeno: Das ist doch genau das selbe, was ich in Post 6 geschrieben habe, und das funktioniert anscheinend nicht, also komisch ?(

    Und bei mir scheint das auch ordentlich zu funktionieren !

  • md5 erstellen

    • Micha_he
    • 25. November 2008 um 12:26

    Ich nutze in meinem Backup-Script auch die Funktion aus #2. Werde mir aber die Lösung von Oscar (#4) ansehen, weil sie ohne DLL auskommt.

    Ansonsten käme noch eine 'md5.exe' in Frage, die per RUN(wait) gestartet wird. Das wäre aber doch wohl die unglücklichste Möglichkeit (Langsam & externe Datei).

  • Download per Objekt

    • Micha_he
    • 25. November 2008 um 07:58
    Zitat von Alina

    Wieso steht da in Zeile 4 was mit Auto It.

    Könntest Du das Script etwas näher erklären?

    Ich glaube es ist ein Beispiel, mit einer ziemlich bekannten Internet-Adresse ! ^^

  • Taschenrechner für ein Spiel

    • Micha_he
    • 25. November 2008 um 00:00

    Ich verstehe kein Wort ?(

  • Taschenrechner für ein Spiel

    • Micha_he
    • 24. November 2008 um 18:57

    So...

    Spoiler anzeigen
    [autoit]

    $exp = 0.01
    do
    $sec = 2
    $q = $exp * 100 * $sec
    MsgBox (0,"",$q)
    $exp *= 10
    Until $exp > 100

    [/autoit]
  • portable Autoit

    • Micha_he
    • 24. November 2008 um 12:28

    Ich hatte ja versprochen, meine abgespeckte Variante vorzustellen. Es ist zwar nicht mehr ganz so aktuell (MadMax hat ja sein Kontextmenü angeblich jetzt auch ohne Adminrechte), aber ich poste es trotzdem mal:

    Spoiler anzeigen
    [autoit]

    Opt("MustDeclareVars",1)
    Opt("TrayMenuMode",1)

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

    Dim $KodaItem, $aboutitem, $helpau3item, $SciTEitem
    Dim $exititem, $CompilerItem, $time1, $msg

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

    $time1 = TimerInit()
    If FileExists(@ScriptDir & "\AutoIT3Portable.jpg") Then SplashImageOn("Splash Screen",@ScriptDir & "\Autoit3Portable.jpg",416,249,-1,-1,17)
    If RegRead("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe","CurrentStartTyp") = "Portable" Then
    SplashOff()
    MsgBox(64, "Start wird abgebrochen !", "Portables Autoit läuft schon !!")
    Exit
    EndIf

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

    _BackupRegistry()
    _Setup_Registry()

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

    $aboutitem = TrayCreateItem("About")
    TrayCreateItem("")
    $helpau3item = TrayCreateItem("AutoIt 3 Hilfe")
    TrayCreateItem("")
    $SciTEitem = TrayCreateItem("SciTE Script Editor")
    TrayCreateItem("")
    If FileExists(@ScriptDir & "\Koda\FD.exe") Then
    $KodaItem = TrayCreateItem("KODA GUI Designer")
    TrayCreateItem("")
    EndIf
    If FileExists(@ScriptDir & "\Aut2Exe\Aut2Exe.exe") Then
    $CompilerItem = TrayCreateItem("AutoIT Compiler")
    TrayCreateItem("")
    EndIf
    $exititem = TrayCreateItem("Exit")
    TraySetState()

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

    While TimerDiff($time1) < 2000
    Sleep(100)
    Wend
    SplashOff()
    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $aboutitem
    MsgBox(0, "about:", @CRLF & "AutotITPortable V1.1" & @CRLF)
    Case $msg = $SciTEitem
    RunWait(@ScriptDir & "\SciTE\SciTE.exe", @ScriptDir)
    Case $msg = $KodaItem
    RunWait(@ScriptDir & "\Koda\FD.exe", @ScriptDir)
    Case $msg = $CompilerItem
    RunWait(@ScriptDir & "\Aut2Exe\Aut2Exe.exe", @ScriptDir)
    Case $msg = $helpau3item
    ShellExecuteWait(@ScriptDir & "\AutoIt.chm","",@ScriptDir)
    Case $msg = $exititem
    $time1 = TimerInit()
    If FileExists(@ScriptDir & "\AutoIT3Portable.jpg") Then SplashImageOn("Splash Screen",@ScriptDir & "\Autoit3Portable.jpg",416,249,-1,-1,17)
    RegDelete("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe","CurrentStartTyp")
    _RestoreRegistry()
    While TimerDiff($time1) < 2000
    Sleep(100)
    Wend
    SplashOff()
    Exit
    EndSelect
    WEnd

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

    Func _BackupRegistry()
    If Not FileExists(@ScriptDir & '\RegBackup') Then DirCreate(@ScriptDir & '\RegBackup')
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\userclass.reg "HKEY_CURRENT_USER\Software\Classes"',"", @SW_HIDE)
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\autoit.reg "HKEY_CURRENT_USER\Software\AutoIt v3"',"", @SW_HIDE)
    If IsAdmin() Then
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\au3.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.au3"',"", @SW_HIDE)
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\autoitscript.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AutoIt3Script"',"", @SW_HIDE)
    EndIf
    EndFunc ;==>backupRegistry

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

    Func _RestoreRegistry()
    RegDelete("HKEY_CURRENT_USER\Software\Classes\.au3")
    RegDelete("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe")
    RegDelete("HKEY_CURRENT_USER\Software\Classes\au3_auto_file")
    If FileExists(@ScriptDir & '\RegBackup\userclass.reg') Then RunWait('RegEdit.exe /S userclass.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    If FileExists(@ScriptDir & '\RegBackup\autoit.reg') Then RunWait('RegEdit.exe /S autoit.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    If IsAdmin() Then
    If FileExists(@ScriptDir & '\RegBackup\au3.reg') Then RunWait('RegEdit.exe /S au3.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    If FileExists(@ScriptDir & '\RegBackup\autoitscript.reg') Then RunWait('RegEdit.exe /S autoitscript.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    EndIf
    DirRemove(@ScriptDir & '\RegBackup',1)
    EndFunc ;==>RestoreRegistry

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

    Func _Setup_Registry()
    RegWrite("HKEY_CURRENT_USER\Software\Classes\.au3","","REG_SZ","au3_auto_file")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe","CurrentStartTyp","REG_SZ","Portable")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe\shell\open\command","","REG_SZ",'"' & @ScriptDir & '\AutoIt3.exe" "%1"')
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell","","REG_SZ","Run")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\Run","","REG_SZ","AutoIT Script ausführen")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\Run\command","","REG_SZ",'"' & @ScriptDir & '\AutoIt3.exe" "%1" %*')
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\Edit","","REG_SZ","AutoIT Script editieren")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\Edit\command","","REG_SZ",'"' & @ScriptDir & '\SciTE\SciTE.exe" "%1"')
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\Compile","","REG_SZ","AutoIT Script kompilieren")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\Compile\command","","REG_SZ",'"' & @ScriptDir & '\Aut2Exe\Aut2Exe.exe" /in "%l"')
    EndFunc

    [/autoit]

    Wie gesagt, auf das notwendige reduziert. Ich will halt nur editieren und per Doppeklick starten. Kompilieren folgt demnächst noch. Ist eben noch in der Weiterentwicklung. Die Idee von MadMax war jedenfalls gut.... :thumbup:

    Edit: Nochmal einige Fehler beseitigt, kompilieren eingefügt, 'SplashImageOn' aus MadMax's-Version übernommen

  • registry auslesen

    • Micha_he
    • 23. November 2008 um 12:14

    Meiner Meinung nach, ist die einfachste und auf möglichst vielen Rechner lauffähige Variante, die mit RegEdit.
    Also:

    [autoit]

    RunWait('RegEdit /E <exportfile.reg> "<HKEY_......>"',"",@SW_HIDE)

    [/autoit]
  • portable Autoit

    • Micha_he
    • 22. November 2008 um 18:28
    Zitat von MadMax

    Desweiteren hat man dann auch ein Kontexmenü.

    Ich kann es jetzt zwar nicht 100%ig bezeugen, aber ich bin der Meinung, in meinem AutoIT-Portable setze ich das Kontexmenü auch im HKEY_CURRENT_USER und das ging auch. Jedenfalls für "AU3 starten" und editieren mit SciTE.

  • Schleifen Problem

    • Micha_he
    • 22. November 2008 um 13:26

    Ich habe mir den Code mal angesehen.

    IF 26 139 162
    ElseIF 85 216
    EndIf 136 269

    Ich würde erstmal behaupten dein IF von Zeile 162 wird nicht mit EndIf abgeschlossen.
    Es hat sich bewährt, bei jeden If, While, Do, usw. einen TAB einzurücken und bei den
    Schlüsselworten Else, EndIf, Wend, Until den TAB wieder nach außen zu gehen. So sieht
    man schnell (wenn man es ordentlich durchführt), das man am Ende nicht wieder passend
    am linken Rand ankommt.

    Edit: Das mit dem "Grau" ist auch zu erklären.
    In der Zeile 90 begint mit dem einfachen Hochkomma in "kxf's" ein String der dann in Zeile 167 mit dem wieder enthaltenen Hochkomman endet. Die Darstellung interpretiert diesen Code deshalb als String. Gewöhne es Dir besser ab, Pfade mit Sonderzeichen zu versehen. Gibt nur Ärger !

  • portable Autoit

    • Micha_he
    • 22. November 2008 um 12:08
    Zitat von L3viathan2142

    Ich finde, so richtig portable ist das nicht. Ich meine, es wird in die Registry geschrieben!
    Klar, es wird nachher wieder gelöscht, aber AutoIt Portable brauch ich vorallem dann, wenn ich keine Rechte zum Installieren habe, also auch keinen Schreibzugriff auf die Registry.

    Genau an der Stelle stand ich auch, als ich das erste mal dieses Thema gelesen habe. Ich habe das von MadMax entworfene Script um einige Teile erleichtert, so das es nur noch den HKEY_CURRENT_USER-Zweig nutzt und im Traymenue auch nur noch den SciTE und die Hilfe zusätzlich anbietet. Mehr brauche ich nicht, wenn ich auf einem fremden System, ggf. ohne Adminrechte mit AutoIT arbeiten will.
    AutoIT-Scripte ausführen und editieren mit SciTE geht so auch auf einem System ohne Adminrechte und z.B. ohne das AutoIT bereits installiert war.

    Nun pflege ich Anfang der Woche (wenn ich wieder im Dienst bin) noch nach, das das Script, wenn der User Adminrecht besitzt, auch den HKEY_LOCAL_MACHINE und HKEY_CLASSES_ROOT sichert und am Ende wieder herstellt. Es könnte ja etwas durch den Admin verändert worden sein.

    Und dann reicht mir dieses einfache Script

  • Datei öffnen - Funktioniert mit verschiedensten Funktionen nicht

    • Micha_he
    • 21. November 2008 um 19:27

    Nein, muss nix 'included' werden. Vielleicht Uralt-Version von AutoIT oder ggf. gibt es das ShellExecute in der neusten Version nicht mehr ?

    Ich benutze noch die V3.2.10. Aber solange ich mich erinnern kann, gibt es diese Funktion schon.

    Dazu fällt mir dann auch nichts mehr ein....

  • Geburtstags-Erinnerer

    • Micha_he
    • 21. November 2008 um 19:21

    Ich habe so etwas schon einmal in der Firma erstellt. Basiert auf einer MDB-Tabelle im Hintergrund, weil sie mit Access (ist ja vorhanden) einfacher zu pflegen ist.

    Ist aber nix besonderes, kommt halt nur ne MsgBox, letzten 3 Tage, heute und die nächsten 2 Tage werden angezeigt. Wenn Interesse ist, kann ich sie ab Montag nochmal hier zum Besten geben.

  • Datei öffnen - Funktioniert mit verschiedensten Funktionen nicht

    • Micha_he
    • 21. November 2008 um 14:57

    Also bei mir geht das, so wie Du schreibst.

    Obwohl man eine Anwendung auch mit Run() oder RunWait() starten kann.

    ShellExecute ist eigentlich dazu geeignet, z.B. die Anwendung passend zum Filetyp zu starten, z.B. so:

    [autoit]

    ShellExecute("Datei.txt")

    [/autoit]

    Dabei warten Dein Script bei ShellExecute() nicht und bei ShellExecuteWait() wartet das Script auf die Beendigung des externen Tools.

  • Datei öffnen - Funktioniert mit verschiedensten Funktionen nicht

    • Micha_he
    • 21. November 2008 um 14:36

    Willkommen Doddl

    Wie wäre es, wenn Du uns mal Deinen Versuch zeigst. Dann kann Dir auch jemand sagen, was Du verkehrt machst.

    Gruß
    micha_he

  • GUI schließen - Script soll aber weiter laufen

    • Micha_he
    • 20. November 2008 um 15:59
    Zitat von franzp
    [autoit]

    $x = 10000
    $dif = 0
    $begin = TimerInit()
    while $dif < $x
    $dif = TimerDiff($begin)
    ;und hier könnte weiterer Code stehen um das Programm doch noch zu beeinflussen...
    WEnd

    [/autoit]
    Alles anzeigen

    Aber auch hier würde ich in der WHILE-WEND-Schleife ein geringes Sleep (z.B. 10) einsetzen. Ansonsten könnte es passieren, das der Prozess sich einiges an CPU-Last genehmigt.

    Gruß
    micha_he

  • FileSelectFolder eines nicht existenten Ordners ?

    • Micha_he
    • 18. November 2008 um 19:21
    Zitat von Vinschni

    Hallo Micha_he,
    wenn ich dich richtig verstanden habe müsste man das doch einfach so lösen können:

    [autoit]

    $pfad = FileSelectFolder("Erstelle einen neuen Ordner:", "",1)

    [/autoit]


    Vor dem Dialog gibts den Ordner nicht, danach schon und auswählen wo er sein soll kann man auch, ganz einfach. ;)

    Grüße,


    Vinschni

    Alles anzeigen

    Es ist doch gar nicht so kompliziert: Ich will einen Ordner wählen per Dialog, der nicht existent ist (User gibt den Unterordner-Namen ein), auch nicht nach dem Dialog.
    Und bei Deiner Lösung existiert er nach dem Dialog, das ist einfach !

  • FileSelectFolder eines nicht existenten Ordners ?

    • Micha_he
    • 18. November 2008 um 13:49
    Zitat von RR04

    Hi,

    [autoit]


    Local $path = FileSelectFolder($languages[71][1], "::{00000000-1080-F9E5-6311-4162E05A6BEE}", 1)
    If Not @error Then
    GUICtrlSetData($cobDest, $path, $path)
    EndIf

    [/autoit]


    Viel Erfolg ! ^^


    So haut das Beispiel aber gar nicht hin ! Aber auch nach Anpassung, lassen sich hiermit nur vorhandene Ordner wählen.


    Zitat von funkey

    So geht's:

    [autoit]

    $Ordner = FileOpenDialog("Ordner auswählen","","")
    DirCreate($Ordner)

    [/autoit]


    Edit: Kommt der Sache am nahsten...

    Zitat von franzp

    dann doch eher so:

    [autoit]

    $Ordner = FileOpenDialog("Ordner auswählen","","")
    DirCreate($Ordner & "\neu")

    [/autoit]

    oder habe ich was falsch verstanden?


    Leicht... das <Neu> soll ja variabel vom Dialog kommen.

    Edit: Ich habe erkannt, man kann den FileOpenDialog dazu gebrauchen. Er will zwar eigentlich eine Datei abfragen, ab in diesem Fall ist er auch in der Lage, die Angabe eine "neuen" Dateinamens als Ordner zu missbrauchen. Ist zwar vom Dialog nicht so schön, aber es würde reichen.

    Danke vorab für den TIP

    Edit: So sieht es ganz brauchbar aus. Wenn aber noch jemand eine ausgefeiltere Lösung parat hat, immer her damit!

    Spoiler anzeigen
    [autoit]

    Do
    $ordner = FileOpenDialog("Ordner auswählen","","Ordner ( )")
    If FileExists($ordner) Then Msgbox(0,"Fehler","Eine Datei mit dem Namen '" & $ordner & "' existiert bereits")
    Until Not FileExists($ordner)
    Msgbox(0,"Erfolgreich", "'" & $ordner & "' kann für die Aktion genutzt werden")

    [/autoit]
  • FileSelectFolder eines nicht existenten Ordners ?

    • Micha_he
    • 18. November 2008 um 12:47

    Ich möchte einen Ornder per Dialog wählen.
    Nun aber zur Schwierigkeit: der Ordner darf vorher noch nicht existieren (führt zu einem Fehler), sondern wird anschließend, bei der Ausführung, erst erstellt !

    Ich hatte mir etwas nach der Art vorgestellt, ich wähle den Parent-Ordner und gebe anschließend den neuen Ordnernamen per "\<neu>" in der Eingabezeile ein.
    Hier ein Test..

    Spoiler anzeigen
    [autoit]

    $neu = FileSelectFolder("Welcher Ordner soll neu erstellt werden ?","",7)
    DirCreate($neu) ; als Beispiel, für die eigentliche Ausführung eines Tools
    ; darf der Ornder aber nicht existieren !

    [/autoit]

    Aber dann der Dialog kann das so nicht übergeben. Hat jemand eine Idee ???

    Gruß
    micha_he

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™