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

  • Text Auslesen

    • Micha_he
    • 23. Januar 2008 um 09:11

    Mag sein, nur habe ich den Browser noch nie mittels AutoIt gesteuert. Und für viele Aufgabe im IE gibt es eine IE-UDF. Aber es kann dir bestimmt noch jemand anders bei deinem Problem helfen.
    Am besten Du stellst mal dein Script-Beispiel (Anfang) hier ein und schreibst mit welche Internetseite man es prüfen kann. Dann sollte sich eine Lösung finden.

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 22. Januar 2008 um 21:48

    Ist mit "\*.out" eine Textdatei gemeint, oder willst Du alle *.out-Files anzeigen ?
    Anzeigen = Dateinamen oder Dateiinhalt ?

  • Text Auslesen

    • Micha_he
    • 22. Januar 2008 um 21:44

    Da kann ich nicht weiterhelfen, mit der IE-Fernsteuerung habe ich mich noch nie befasst. Ich bin reiner Opera-User.

  • Text Auslesen

    • Micha_he
    • 22. Januar 2008 um 18:59

    Wo ist denn der Button ? In deinem Script, in einem anderen Programm, im Browser, u.s.w. ?

  • Text Auslesen

    • Micha_he
    • 22. Januar 2008 um 18:39

    hä... ich versteh nur Bahnhof !

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 22. Januar 2008 um 18:36

    Die letzten Zeile könnte man natürlich etwas ordentlicher schreiben:

    [autoit]

    If Not FileExists ("c:\inv_Dateien\inv.out") Then
    MsgBox(1, "Datei", "Datei ist nicht" & @CRLF & "vorhanden !")
    Else
    FileDelete("c:\inv_Dateien\inv.out")
    EndIf

    [/autoit]
  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 22. Januar 2008 um 18:29

    Wie Du schon bemerkt hast fehlt in Zeile 2 ein '#include <GUICombobox.au3>'. Bei mir liegt die UDF in 'C:\Programme\AutoIt\Include\'.

    Außerdem ist die Zeile 10 überflüssig, oder was soll das zweite GUI ?

    Ansonsten läuft das Script. Exe habe ich natürlich nicht und zeige mit deshalb an den Stellen nur das Kommando in einer MsgBox an.

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 22. Januar 2008 um 18:01

    ScriptCode ?

  • Dateien teilen

    • Micha_he
    • 22. Januar 2008 um 17:30

    ... oder ohne so einen Array-Schnick-Schnack mit alter herkömmlicher Programmierkunst:

    [autoit]

    $in = FileOpen("Eingabe.txt",0)
    $i = 1
    While 1
    $out = FileOpen("Ausgabe_" & $i & ".txt",1)
    For $j = 1 to 100
    $line = FileReadLine($in)
    If @error = -1 Then ExitLoop 2
    FileWriteLine($out,$line)
    Next
    FileClose($out)
    $i += 1
    Wend
    FileClose($in)

    [/autoit]
  • Schreiben in eine XML Datei

    • Micha_he
    • 22. Januar 2008 um 12:29

    Mein Vorgehen wäre folgendes:

    - öffne Eingangsdatei
    - Datei Zeile für Zeile lesen (FileReadLine)und in eine $Variable (incl. angehängten CRLF) schreiben
    - wenn betreffende Zeile (StringLeft($zeile,16) = "<entry name=""W"">") dann schreibe Standardzeile in $Variable
    - schließe Eingangsdatei
    - überschreibe Datei mit $Variable

    Fertig....

  • Programm als Admin von einem Dienst starten lassen

    • Micha_he
    • 22. Januar 2008 um 12:22

    Wenn Du ein Programm unter einem Account startest, der sich vom gerade eingeloggten User unterscheidet, würde die MsgBox auf dem Desktop vom User deines 'RunAsSet'-Kommandos erscheinen. Und die siehst Du nicht !
    Bei den Diensten gibt es für diesen Fall eine Option die sich 'Datenaustausch zwischen Dienst und Desktop zulassen'.

  • Schreiben in eine XML Datei

    • Micha_he
    • 21. Januar 2008 um 15:35

    Und auch wenn es kein Text wäre, könnte man Bit für Bit in die Datei schreiben :D
    Ist halt nur etwas komplizierter...

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 20. Januar 2008 um 12:48

    Na gut, vielleicht hilft Dir dieses Beispiel. Nur einbauen muss Du es dann selbst....

    Spoiler anzeigen
    [autoit]

    #Include <GuiComboBox.au3>

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

    $GUI = GUICreate("ComboAddDir",400,300)
    $Combo = GUICtrlCreateCombo("", 2, 2, 396, 296)
    $Lesen = GUICtrlCreateButton("Lesen",20,30)
    GUISetState(@SW_SHOW)

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

    _GUICtrlComboBox_AddDir ($Combo, @WindowsDir & "\*.exe")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Lesen
    Msgbox(0,"Ergebnis","Gewählt wurde : " & GUICtrlRead($Combo))

    EndSwitch
    Wend

    [/autoit]
  • Button ausschalten nach anklicken dafür andere freigeben

    • Micha_he
    • 20. Januar 2008 um 12:35

    Man müsste erst einmal überlegen, was soll passieren, wenn das Programm zwischen dem 'Start' und dem 'Ende' geschlossen wird ?

    Ansonsten : Schau hier... (Zeilen 10,11,22-24,33-35. Das hättest Du aber auch selbst geschafft, oder ?) :whistling:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("twb153", 550, 150)
    $Datei = GUICtrlCreateInput("", 80, 48, 457, 21)
    $Start = GUICtrlCreateButton("Start", 16, 16, 57, 25, 0)
    $Lesen = GUICtrlCreateButton("Lesen", 16, 48, 57, 25, 0)
    $Ende = GUICtrlCreateButton("Ende", 16, 80, 57, 25, 0)
    $Loeschen = GUICtrlCreateButton("Inv.out Löschen" , 16, 112, 100, 25, 0)
    $Alles = GUICtrlCreateButton("Alle .out Löschen" , 120, 112, 100, 25, 0)
    GUICtrlSetState($Ende,$GUI_DISABLE)
    GUICtrlSetState($Lesen,$GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

    Case $Start
    GUICtrlSetState($Start,$GUI_DISABLE)
    GUICtrlSetState($Ende,$GUI_ENABLE)
    GUICtrlSetState($Lesen,$GUI_ENABLE)
    RunWait(@ComSpec & " /c " & @scriptdir & "\twb153.exe S")

    Case $Lesen
    If GUICtrlRead($Datei) <> "" Then
    RunWait(@ComSpec & " /c " & @scriptdir & "\twb153.exe L " & GUICtrlRead($Datei))
    EndIf

    Case $Ende
    GUICtrlSetState($Start,$GUI_ENABLE)
    GUICtrlSetState($Ende,$GUI_DISABLE)
    GUICtrlSetState($Lesen,$GUI_DISABLE)
    RunWait(@ComSpec & " /c " & @scriptdir & "\twb153.exe A")

    Case $Loeschen
    If Not FileExists ("c:\inv_Dateien\inv.out") Then
    MsgBox(1, "Datei", "Der Text in Zeile1" & @CRLF & "und der in Zeile 2")

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

    EndIf

    If FileExists("c:\inv_Dateien\inv.out") Then
    FileDelete("c:\inv_Dateien\inv.out")

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


    EndIf


    Case $Alles
    FileDelete("c:\inv_dateien\*.out")

    EndSwitch
    Wend

    [/autoit]
  • Netzwerk Script

    • Micha_he
    • 20. Januar 2008 um 12:11

    Es geht einfacher:

    Zeile 20 muss so lauten: ShellExecuteWait($path & $file)

    Hatte ich auch schon geschrieben, bevor mein Editor die Grätsche gemacht hat. Und in der Version die ich anschließend neu schrieb, hab ich es vergessen :(

  • Netzwerk Script

    • Micha_he
    • 19. Januar 2008 um 18:28

    na dann so...

    [autoit]

    $path = "\\Lennart\SharedDocs\Network\"
    $backup = @tempdir
    If StringRight($path,1) <> "\" then $path &= "\"
    While 1
    $search = FileFindFirstFile($path & "*.*")
    If $search = -1 Then
    ; keine Dateien gefunden
    FileClose($search)
    Sleep (1000)
    Else
    ; wenn Dateien vorhanden, dann abarbeiten
    While 1
    $file = FileFindNextFile($search)
    If @error Then Exitloop ; keine weitere Datei gefunden, innere Schleife verlassen
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    $iMsgBoxAnswer = MsgBox(36, "Neue Datei gefunden!", "Es wurde eine neue Datei mit dem Namen " & $file & " gefunden!" & @CRLF & "Jetzt Ausführen ?")
    Select
    Case $iMsgBoxAnswer = 6
    Sleep(1000)
    ShellExecute($path & $file)
    FileMove($path & $file, $backup, 9) ; Ordner wird ggf. erzeugt, alte Dateien überschrieben

    Case $iMsgBoxAnswer = 7
    FileMove($path & $file, $backup, 9) ; Ordner wird ggf. erzeugt, alte Dateien überschrieben

    EndSelect
    Wend
    FileClose($search)
    EndIf
    Wend

    [/autoit]
  • Netzwerk Script

    • Micha_he
    • 19. Januar 2008 um 15:28

    Habe ich das jetzt richtig verstanden:

    - er wartet auf eine Datei (endlos)
    - wenn Datei da dann ausführen
    - wenn alle ausgeführt warten bis neue kommt

    Dann müsste das Script sich ja merken welche schon ausgeführt wurde !

    oder Möglichkeit 2:

    - er wartet auf eine Dateien (endlos)
    - wenn Datei da dann ausführen
    - wenn ausgeführt dann löschen / verschieben
    - wenn alle ausgeführt von vorne Anfangen

  • Netzwerk Script

    • Micha_he
    • 19. Januar 2008 um 13:16

    War zum Teil mein Fehler, mit '$search' geht das natürlich nicht mehr, weil es der Rückgabewert der 'FileFindFirstFile'-Funktion ist. Ansonsten hättest Du dich nur an die AutoIt-Hilfe zu 'FileFindNextFile'-Funktion halten müssen.

    So korrigiert könnte es klappen:

    [autoit]

    $path = "\\Lennart\SharedDocs\Network\"

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

    If StringRight($path,1) <> "\" then $path &= "\"
    $search = FileFindFirstFile($path & "*.*")
    If $search = -1 Then Exit ; keine Datei gefunden
    While 1
    $file = FileFindNextFile($search)
    If @error Then Exitloop ; keine weitere Datei
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    $iMsgBoxAnswer = MsgBox(36, "Neue Datei gefunden!", "Es wurde eine neue Datei mit dem Namen " & $file & " gefunden!" & @CRLF & "Jetzt Ausführen ?")
    Select
    Case $iMsgBoxAnswer = 6
    Sleep(1000)
    ShellExecute($path & $file)

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

    Case $iMsgBoxAnswer = 7
    ; nix tun

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

    EndSelect
    WEnd

    [/autoit]
  • Netzwerk Script

    • Micha_he
    • 19. Januar 2008 um 11:09

    FileFindNextFile übergibt nur den Dateinamen und keinen Pfad dorthin !


    Also sollte Zeile 15 besser so aussehen:

    ShellExecute (StringLeft($search,StringInStr($search,"\",0,-1)) & $file)

  • Dos Programm mit drei Parametern automatisieren

    • Micha_he
    • 19. Januar 2008 um 10:59

    Eigentlich sollte man sich schon ein wenig Gedanken machen, wenn man ein Programm/Script haben möchte. Und wer Interesse am Programmieren hat, versucht es wenigstens ( auch wenn es dann schief geht ) !

    hier mal einen Anfang wie es klappen könnte:

    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("twb153", 550, 150)
    $Datei = GUICtrlCreateInput("", 80, 48, 457, 21)
    $Start = GUICtrlCreateButton("Start", 16, 16, 57, 25, 0)
    $Lesen = GUICtrlCreateButton("Lesen", 16, 48, 57, 25, 0)
    $Ende = GUICtrlCreateButton("Ende", 16, 80, 57, 25, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

    Case $Start
    RunWait(@ComSpec & " /c " & @scriptdir & "\twb153.exe S")

    Case $Lesen
    If GUICtrlRead($Datei) <> "" Then
    RunWait(@ComSpec & " /c " & @scriptdir & "\twb153.exe L " & GUICtrlRead($Datei))
    EndIf

    Case $Ende
    RunWait(@ComSpec & " /c " & @scriptdir & "\twb153.exe A")

    EndSwitch
    Wend

    [/autoit]

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™