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

Beiträge von Eggsplorer

  • Dircopy with Progressbar

    • Eggsplorer
    • 13. Juli 2017 um 10:18

    Ich weiß, der Thread ist uralt, aber die Frage passt hier eigentlich gut rein:

    Was muss ich an autoBerts Script ändern, um kein Dialog-Fenster nach dem Kopieren zu bekommen?

    Das Script funktioniert einwandfrei, ich möchte jedoch, dass es direkt nach dem Kopieren ohne Interaktion weiter läuft.

  • Powershell Befehl über Autoit ausführen

    • Eggsplorer
    • 9. Februar 2016 um 14:50

    GENIAL!!!
    Scheint auf Anhieb zu funktionieren. =)

    Tut mir Leid, dass ich mich jetzt erst melde. Irgendwie habe ich keine Benachrichtigung bekommen.

    Ich werde das ganze noch weiter testen und gebe ggf. nochmal Bescheid!

  • Powershell Befehl über Autoit ausführen

    • Eggsplorer
    • 28. Januar 2016 um 08:25

    Hey =)

    Ich möchte mit Hilfe von Autoit den PacketManager OneGet in PowerShell nutzen.
    Normalerweise muss ich unter Windows 10 lediglich PowerShell öffnen und folgendes eingeben:

    Code
    Install-Package -Name Firefox -Force


    Firefox wird daraufhin unattended installiert.

    Das gleiche funktioniert auch über cmd:

    Code
    powershell -Command Install-Package -Name Firefox -Force


    Sieht dann wie folgt aus, wenn es erfolgreich war:

    cmd.jpg

    Edit: Ich muss mich korrigieren. Über CMD klappt es nicht immer. Eben habe ich es nochmal manuell versucht und es kam auch die Fehlermeldung unten. Scheint also nicht das Problem von AutoIt zu sein. Über PowerShell funktioniert es jedoch immer und einwandfrei

    Mit AutoIt habe ich folgendes versucht:

    AutoIt
    Run(@ComSpec & ' /k ' & 'powershell -Command Install-Package -Name Firefox -Force', @UserProfileDir, @SW_SHOW)


    Es kommt folgender Fehler zurück:

    autoit.jpg

    Da ich gemerkt habe, dass dieser Fehler auch manchmal auftritt, wenn ich den Befehl manuell in CMD eingebe, scheint es nicht an AutoIt zu liegen.
    Gibt es noch andere Möglichkeiten, PowerShell Befehle mit AutoIt auszuführen?
    Ich würde ungern den "hässlichen" Weg gehen [PowerShell aufrufen, Befehl einfügen, Enter drücken, warten etc.].

    Vielen Dank
    Eggsplorer

  • WinWaitActive mit Variable

    • Eggsplorer
    • 5. Dezember 2013 um 12:32

    Vielen Dank =)
    Ich habe mir nochmal genau meine Fenster mit hilfe des AutoIt Window Info Tool angeschaut und festgsestellt, dass es sichtbaren Text gibt, der unterschiedlich ist, je nachdem ob Updates gefunden worden sind, oder nicht.
    Das hat es erheblich vereinfacht und ich brauche nur ein WinWaitActive zu benutzen.

    Nochmal Danke für die Hilfe.
    Eggsplorer

  • WinWaitActive mit Variable

    • Eggsplorer
    • 3. Dezember 2013 um 12:43

    Danke für die schnelle Antwort.

    Eigentlich hat WinWaitActive bei mir auch nur 3 Parameter. Die 6 verschiedenen Fälle haben auch nur 3 Parameter, aber ich habe versucht, den Wert 0 durch die Variable (>0) zu ersetzen.

    Nochmal zu meinem Vorhaben:
    Ich hab ein Programm, dass nach Updates sucht. Wenn es keine Updates findet, erscheint ein Fenster mit folgendem Text: "Ergebnis der Suche: 0 Treiber, 0 Software, 0 Windows Updates"
    Falls Updates gefunden werden, steht da zum Beispiel: "Ergebnis der Suche: 3 Treiber, 0 Software, 9 Windows Updates".
    Ich möchte, dass beim ersten Fall (alle Werte = 0) das Fenster geschlossen wird.
    Beim zweiten Fall, soll das Script weiterlaufen und die updates werden installiert.

  • WinWaitActive mit Variable

    • Eggsplorer
    • 3. Dezember 2013 um 11:46

    Hallo =)
    Wie kann ich "WinWaitActive" abhängig von einer variable machen?

    Ich möchte, dass ein Fesnter geschlossen wird, wenn 0 drin vorkommt und dass mein Script weiterläuft falls > 0 drin vorkommt.
    So habe ich es versucht:

    [autoit]


    $var = <> 0 ;diese Definition scheint nicht zu funktionieren

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

    If WinWaitActive ("Programm", "Ergebnis: 0 Treiber, 0 Software, 0 Updates", 0) Then
    WinClose ("DeskUpdate", "")
    Exit
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: " & $var & " Treiber, 0 Software, 0 Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: 0 Treiber, " & $var & " Software, 0 Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: 0 Treiber, 0 Software, " & $var & " Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: "& $var &" Treiber, "& $var &" Software, 0 Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: 0 Treiber, " & $var & " Software, " & $var & " Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: " & $var & " Treiber, " & $var & " Software, " & $var & " Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

    [/autoit]

    Ich habe so viele verschiedene Kombinationen, da die einzige Bedingung ist, dass nicht alle Werte = 0 sein sollen.
    vielleicht geht es auch, dass für den Fall $var = 0 geschlossen wird und für alle anderen Fälle (z.B. WinWaitActive ("DeskUpdate", "Programm", "Ergebnis:", 0)) das Skript weiter ausgeführt wird.

    Ich bin über jeden Tip dankbar =)

  • CMD Befehl für Shutdown Script

    • Eggsplorer
    • 16. Oktober 2013 um 14:41

    Hey =)
    ich habe vor ein Shutdown Programm zu schreiben, das den Rechner nach einer bestimmten Zeit Herunterfährt, Neustartet oder in den Ruhezustand versetzt.
    Mir ist bewusst, dass es dafür viele fertige Scripte oder sogar Programme zum downloaden gibt, aber ich bin erst vor kurzem auf Autoit gestoßen und würde gerne einen eigenen Versuch starten.

    Das kleine Programm soll so aussehen:
    GUI 1: Input für "Stunden", "Minuten" und "Sekunden" + Buttons für "Herunterfahren", "Neustarten", "Ruhezustand"
    Nach Klick auf einen der Button wird der dazugehörige Befehl ausgeführt und GUI 2 wird geöffnet
    GUI 2: Button für "Abbruch" und "OK und Schließen" (Evtl. noch ein Countdown wenn alles läuft, wie es soll)

    Soviel zum Konzept.
    Bei der Umsetzung bin ich meiner Meinung nach schon ein Stück vorran gekommen.
    Probleme bereitet mir nun der Befehl:

    [autoit]

    Run(@comspec & " /c " & 'shutdown /f /s /t ' & $Timer,"", @SW_hide)

    [/autoit]


    Ich weiß, dass viele Wege nach Rom führen, wie z.B. Run(cmd.exe) oder _RunDOS() aber ich würde gerne das CMD Fenster verborgen lassen.

    Mein Problem ist nun, dass bei obigem Befehl, nichts passiert, außer dass sich das Programm nochmal öffnet, Bzw. das GUI 1.
    Wenn ich @SW_hide weglasse, sehe ich, wie sich das CMD Fenster öffnet, dass komplett leer ist.

    Hier mein kompletter Code:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Process.au3>
    #Region ### START Koda GUI section ### Form=z:\*****\autoit\shutdown\shutdown.kxf
    $Form1 = GUICreate("Shutdown Timer", 369, 301, 216, 162)
    $Label = GUICtrlCreateLabel("Stunden", 68, 64, 54, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Labe2 = GUICtrlCreateLabel("Minuten", 154, 64, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Labe3 = GUICtrlCreateLabel("Computer in ...", 68, 16, 151, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Labe4 = GUICtrlCreateLabel("Sekunden", 234, 64, 66, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("0", 68, 38, 41, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("0", 154, 38, 41, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input3 = GUICtrlCreateInput("1", 234, 38, 41, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Herunterfahren", 112, 114, 200, 50)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Neu starten", 112, 170, 200, 50)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Ruhezustand", 112, 225, 200, 50)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Icon1 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Shutdown.ico", -0, 56, 114, 50, 50)
    $Icon2 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Restart.ico", -0, 56, 170, 50, 50)
    $Icon4 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Hibernate.ico", -0, 56, 226, 50, 50)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    $Timer = GUICtrlRead($Input1)*3600 + GUICtrlRead($Input2)*60 + GUICtrlRead($Input3)
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Run(@comspec & " /c " & 'shutdown /f /s /t ' & $Timer,"",@SW_hide) ; besser als _RunDos("shutdown -s -t " & $Timer) oder Run(cmd.exe)
    GUIDelete($Form1)
    gui2()
    Case $Button2
    Run(@comspec & " /c " & 'shutdown /f /r /t ' & $Timer,"",@SW_hide)
    GUIDelete($Form1)
    gui2()
    Case $Button3
    GUIDelete($Form1)
    Run("cmd.exe")
    Opt("WinTitleMatchMode", 2)
    WinWaitActive("cmd", "", 10) ; besser als WinWaitActive("Administrator: C:\Windows\system32\cmd.exe", "", 10)
    Send("C:")
    Send("{ENTER}")
    Send("ping -n " & $Timer & " 127.0.0.1 > NUL 2>&1 && shutdown /h /f")
    Send("{ENTER}")
    WinSetState("cmd.exe", "", @SW_MINIMIZE) ; besser als WinSetState("Administrator: C:\Windows\system32\cmd.exe", "", @SW_MINIMIZE)
    gui3 ()
    EndSwitch
    WEnd

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

    Func gui2 ()
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Process.au3>
    #Region ### START Koda GUI section ### Form=z:\*****\autoit\shutdown\countdown.kxf
    $Form2 = GUICreate("Shutdown", 381, 194, 217, 167)
    $Button2_1 = GUICtrlCreateButton("Abbruch!", 118, 43, 200, 50)
    $Icon1 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Abort.ico", -0, 62, 43, 50, 50)
    $Button2_2 = GUICtrlCreateButton("OK und Schließen", 118, 99, 200, 50)
    $Icon2 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Approved.ico", -0, 62, 99, 50, 50)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 2
    $nMsg = GUIGetMsg (2)
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2_2
    Exit
    Case $Button2_1
    Run(@comspec & " /c " & 'shutdown /a',"",@SW_hide)
    Exit
    EndSwitch
    WEnd
    EndFunc

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

    Func gui3 ()
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Process.au3>
    #Region ### START Koda GUI section ### Form=z:\*****\autoit\shutdown\countdown.kxf
    $Form3 = GUICreate("Shutdown", 381, 194, 217, 167)
    $Button3_1 = GUICtrlCreateButton("Abbruch!", 118, 43, 200, 50)
    $Icon1 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Abort.ico", -0, 62, 43, 50, 50)
    $Button3_2 = GUICtrlCreateButton("OK und Schließen (CMD bleibt offen)", 118, 99, 200, 50)
    $Icon2 = GUICtrlCreateIcon("Z:\*****\AutoIT\Shutdown\Approved.ico", -0, 62, 99, 50, 50)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 3
    $nMsg = GUIGetMsg (3)
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button3_2
    Exit
    Case $Button3_1
    WinKill(@WindowsDir & "\system32\cmd.exe")
    Exit
    EndSwitch
    WEnd
    EndFunc

    [/autoit]


    Den Ruhezustand musste ich etwas anders bewergstelligen, da Windows es meinem Wissen nach nicht einfacher ermöglicht. Dafür ist der Ruhezustand der einzige Befehl, der funktioniert.

    Falls jemandem ein schöner Weg einfällt, einen Countdown im GUI 2 anzuzeigen, wäre ich sehr dankbar. Ich habe viele Sachen ausprobiert und kam nicht einmal in die Nähe einer Lösung und habe deshalb drauf verzichtet :)

    Danke schonmal
    Grüße
    Eggsplorer

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™