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. s.koni

Beiträge von s.koni

  • Buttonklick erkenne trotz Schleife in Unterfunktion

    • s.koni
    • 1. Juli 2011 um 15:35

    Hallo,

    irgendwie stehe ich auf dem Schlauch und komme nicht weiter. Ich habe eine GUI gebaut, die einen Button hat. Beim Klicken auf den Button wird eine Funktion aufgerufen die in einer Schleife weitere Befehle abarbeitet.

    Ich möchte nun, dass wenn ich während die Schleife läuft auf den Button klicke die Schleife beendet wird und dann wieder durch Klicken auf den Button neu gestartet werden kann.

    [autoit]

    $GUIWidth = 620
    $GUIHeight = 380

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

    $FormUpdater = GUICreate("User Files Updaten", $GUIWidth, $GUIHeight, 192, 114, $WS_CAPTION)

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

    $ProgressLeft = 16
    $ProgressBar1 = GUICtrlCreateProgress($ProgressLeft, 320, $GUIWidth - 2 * $ProgressLeft, 22, $PBS_SMOOTH)
    $ProgressbarLabel = GUICtrlCreateLabel('0%', $ProgressLeft, 324, $GUIWidth - 2 * $ProgressLeft, 14, $SS_CENTER) ; Prozentanzeige innerhalb der Progressbar
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Transparenter Hintergrund für das Label

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

    $ButtonCommand = GUICtrlCreateButton("Start", 520, $GUIHeight - 8 - 25, 91, 25, $WS_GROUP)
    $LabelHeader = GUICtrlCreateLabel("ELCAD Benutzerverwaltung aktualisierung", 16, 8, 602, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $EditForm = GUICtrlCreateEdit("", 16, 48, 593, 265, $WS_VSCROLL + $ES_WANTRETURN + $ES_AUTOHSCROLL + $ES_READONLY)

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

    $hEdit = GUICtrlGetHandle($EditForm)
    GUICtrlSetData(-1, "Projektsuche")
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $a = 1

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $ButtonCommand
    Global $BtnID = $nMsg
    MsgBox(0, "", $nMsg)
    If GUICtrlRead($ButtonCommand) = "Start" Then
    GUICtrlSetData($ButtonCommand, "Abbrechen")
    MasterFunc()
    GUICtrlSetData($ButtonCommand, "Schliessen")
    Else
    Exit
    EndIf
    EndSwitch
    WEnd
    ...
    Func MasterFunc()

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

    $Temp = GUICtrlRead($EditForm)
    GUICtrlSetData($EditForm, $Temp & @CRLF & "Projektsuche gestartet")
    _GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))
    $MasterUserDate = StringLeft(FileGetTime($MasterUserDatFile, 0, 1), 8)

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

    $FolderList = _FileListToRekursiv($LocalProjectFolder, "*.pro", 2)
    $Temp = GUICtrlRead($EditForm)
    GUICtrlSetData($EditForm, $Temp & @CRLF & "Projektsuche abgeschlossen")
    _GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))

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

    For $i = 1 To $FolderList[0]

    ; HIER WIRD DAS ERGEBNIS VON _FileListToRekursiv abgearbeitet ....

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

    GUICtrlSetData($ProgressBar1, 100 / $FolderList[0] * $i)
    GUICtrlSetData($ProgressbarLabel, Round(100 / $FolderList[0] * $i, 0) & '%') ; neuen Wert für das Label schreiben

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

    If CheckButton() = 0 Then
    $Temp = GUICtrlRead($EditForm)
    GUICtrlSetData($EditForm, $Temp & @CRLF & @CRLF & "---- Abbruch durch Benutzer! ---- " & $FolderList[$i])
    _GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))
    GUICtrlSetData($ButtonCommand, "Start")
    ExitLoop
    EndIf

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

    Next

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

    EndFunc ;==>MasterFunc

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

    Func CheckButton()

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

    $nMsg = GUIGetMsg()
    MsgBox(0, "", $nMsg)
    MsgBox(0, "", $ButtonCommand)

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

    If $nMsg = $ButtonCommand Then
    If GUICtrlRead($ButtonCommand) = "Abbrechen" Then
    Return 0
    Else
    Return 1
    EndIf
    EndIf

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

    EndFunc ;==>CheckButton

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

    Kennt jemand eine Möglichkeit das zu realisieren?

    Vielen Dank schon mal für eure Antworten!!!

    Gruß
    Steffen

  • PDF erstellen + zusammenfügen

    • s.koni
    • 27. Juni 2011 um 14:49

    Hallo,

    hab noch einen anderen Ansatz für dich: Verwende doch VBA hierzu. Kommt jetzt auf die Excel Version an. Steht dir Excel ab 2007 zu Verfügung, da gibt es eine direkte Speicherfunktion als PDF. Bei Älteren Excel Versionen wird bei der Installation von Adobe Acrobat Professional ein Menüpunkt eingefügt, aus dem du direkt PDF erstellen kannst.

    Beide Funktionen kannst du über VBA ansteuern.

    Idee:
    Erstelle ein ExcelTabelle in der alle weitern ExcelTabellen aufgelistet werden (vielleicht auch lesen der Dateien aus den Verzzeichnissen). Dann machst du mit VBA eine Schleide in der du alle Einträge der ersten Tabelle durchläufst und die eingetragenen Tabellen aufrufst. Dann, je nach Version von Excel, die Datei als PDF speichern und gleich entsprechend umbenennen.

    Mit dem Acrobat kannst du dann in einem Arbeitsschritt alle PDF Dateien zusammenführen zu einer Datei.

    Gruß
    Steffen

  • FTP upload kappt Internetverbindungen.

    • s.koni
    • 30. März 2011 um 12:37

    Hallo Douky,

    kannst du mir sagen, warum du hier den passiv mode verwendest? Hast du schon mal ohne probiert

    [autoit]

    $Conn = _FTP_Connect($Open, $server, $username, $pass)

    [/autoit]

    Habe auch ein Script für den FTP-Upload in Betrieb, allerdings ohne die Option für Passiver Modus und die läuft und läuft und läuft.

    Ist jetzt nur gerate, aber vielleicht hilft nur Try and Error hier weiter.

    Gruß
    Steffen

  • Parameterabfrage für Kommandozeile eines AutoIT Scriptes

    • s.koni
    • 4. Februar 2011 um 15:07

    Hallo TheShadowAE,

    Danke für deine Antwort. In der Hilfe zu ConsoleWrite heißt es:

    Diese Funktion kann nicht in ein DOS-Fenster schreiben, es sei denn, das Skript wurde als Konsolenprogramm kompiliert.

    Weiß jemand was damit gemeint ist, "wurde als Konsolenprogramm kompiliert"?

    Danke
    Steffen

  • Parameterabfrage für Kommandozeile eines AutoIT Scriptes

    • s.koni
    • 4. Februar 2011 um 14:17

    Hallo zusammen,

    kennt jemand eine Lösung, wie man die möglichen Kommandozeilenparamert für ein mit AutoIT erstellte Exe ausgeben kann?

    Ich möchte gerne so was haben, wie in der CMD Konsole. Wenn man dort z.B. dir /? eingibt, werden die möglichen Parameter angezeigt, die diesem Befehl als Optionen mitgegeben werden können.

    Mit AutoIT kann ich ja auch mit $cmdline die übergebenen Kommandozeilenparameter durchlaufen. Wenn jetzt $cmdline[1] = "/?" ist, soll z.B. [Projektname] [Benutzer] ... ausgegeben werden. So kann der Anwender die benötitgten Paramer eränzen.

    Klar, könnte auch dann eine GUI anzeigen, die die Parameter auflistet - aber geht es vielleicht auch so wie bei dir /?

    Hat das jemand verstanden ?!?!?!???? Hoffe es.
    Hat jemand eine Antwort - wäre super!

    Gruß
    Steffen

  • CPU-Auslastung eines Prozesses ermitteln

    • s.koni
    • 29. Oktober 2010 um 13:25

    Danke! Manchmal braucht man nur den richtigen Suchbegriff - bin nicht draufgekommen!

    Danke
    s.koni

  • CPU-Auslastung eines Prozesses ermitteln

    • s.koni
    • 29. Oktober 2010 um 13:13

    Hallo,

    kann mir jemand auf die sprünge hlfen? Ich möchte die CPU-Auslastung EINES PROZESSES ermitteln. Wie man die Auslastung der gesamten CPU ermittelt - dazu gibt es schon genug Beispiele.
    Für einen einzelnen Prozess habe ich aber bisher noch keinen Ansatz gefunden. Mir würde im Prinzip schon das reichen, was im TaskManager bei CPU-Auslastung für den jeweiligen Prozess steht reichen.

    Hoffe jemand kann mir helfen.

    mfg
    Steffen (s.koni)

  • Tabellenablauf mit Autoit

    • s.koni
    • 8. September 2010 um 14:12

    Hallo maddown,

    willst du nicht leiber eine INI Datei nehmen? Ich mach so was ähnliches damit. In der INI lege ich für jeden PC einen Eintrag an und darunter die Scripte, Einstellungen usw. die zutreffend sind. Neue PCs schreiben selber einen Default Eintrag in die INI und ich kann ggf. Einstellungen ergänzen.

    Ist viel leichter als in einer Textdatei das alles zu handeln.

    Gruß
    s.koni

  • Anzahl der Werte in einem Array

    • s.koni
    • 13. Juli 2010 um 11:18

    Hallo TheLuBu,

    schau dir doch mal _Array2DSearch von BugFix an. Gibt eine Array mit allen Fundstellen zurück, "- Array[0] enthält die Anzahl der Treffer" -> _Array2DSearch

    Gruß
    Steffen

  • Controls abhänig voneinander verschieben

    • s.koni
    • 18. Juni 2010 um 10:03

    Vielleicht habe ich es selbst schon hinbekommen

    [autoit]


    For $Count = 1 To 4
    If $Count = 1 Then
    $RightCrtlCords = ControlGetPos($Gui_Name, "", 1);_WinAPI_GetDlgCtrlID(GUICtrlGetHandle($GUIActiveX))); "[CLASS:SysListView32; INSTANCE:1]")
    ElseIf $Count = 2 Then
    $RightCrtlCords = ControlGetPos($Gui_Name, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]")
    ElseIf $Count = 3 Then
    $RightCrtlCords = ControlGetPos($Gui_Name, "", "[CLASS:Shell Embedding; INSTANCE:1]")
    ElseIf $Count = 4 Then
    $RightCrtlCords = ControlGetPos($Gui_Name, "", "[CLASS:SysListView32; INSTANCE:1]")
    EndIf

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

    If IsArray($RightCrtlCords) Then
    ExitLoop
    EndIf
    Next

    [/autoit]


    Danke Schnitzel für deine Anregungen.

    Muss den Eintrag nochmal öffnen!
    Ich habe das Problem, dass bei beiden vorgeschlagenen Lösungen die ID des Controls verwendet wird. Leider kriege ich die nicht so ohne weiteres, bzw. ändert sich die ID.

    Was habe ich bisher, was habe ich vor:

    Ich möchte einen FTP Viewer schreiben. Dazu habe ich ein Fenster auf dem links ein TreeView Control ist und auf der rechten Seite ein IECreateEmbedded Objekt bzw. ein ActiveX Control.

    [autoit]

    $treeview = GUICtrlCreateTreeView($LeftCrtlCords[0], $LeftCrtlCords[1], $LeftCrtlCords[2], $LeftCrtlCords[3], -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetResizing($treeview, $GUI_DOCKAUTO)
    GUICtrlSetBkColor($treeview, $BKColor)
    $hWndTreeView = GUICtrlGetHandle($treeview) ; <-- das ist wichtig! Die UDFs am besten immer mit dem Handle aufrufen.

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

    $oIE = _IECreateEmbedded()
    $GUIActiveX = GUICtrlCreateObj($oIE, $RightCrtlCords[0], $RightCrtlCords[1], $RightCrtlCords[2], $RightCrtlCords[3])
    GUICtrlSetResizing($GUIActiveX, $GUI_DOCKAUTO)
    GUICtrlSetStyle($GUIActiveX, $WS_EX_CLIENTEDGE + $WS_SIZEBOX)

    [/autoit]

    Im TreeView lese ich nun die Einträge vom FTP Server und per Doppelklick lade ich dann die Datei in das ActivX Control.
    Das Klappt auch schon ganz gut!
    Nun würde ich (wie bereits beschrieben) die breite des TreeView Controls abhänig von der Breite des ActivX Controls ändern. Beim Starten des Scriptes hat das ActivX Control die ID 1. Wird nun eine Datei per doppelklick im TreeView im ActivX geladen, kann sich die ID Ändern. Wovon das abhängt konnte ich bisher noch nicht erkennen.

    Was ich mit dem Windows Info Tool gesehen habe ist, dass die ID dann auch leer sein kann/ist.
    Beispiele der Einträge im Windows Info Tool

    [autoit]


    Start des Script:
    Class SysListView32
    Advanced Mode [CLASS:SysListView32; INSTANCE:1]
    ID 1

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

    Laden eine PDF datei
    Class Shell Embedding
    Advanced Mode [CLASS:Shell Embedding; INSTANCE:1]
    ID [LEER]

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

    Laden einer HTML Seite
    Class Internet Explorer_Server
    Advanced Mode [CLASS:Internet Explorer_Server; INSTANCE:1]
    ID [LEER]

    [/autoit]

    Weiß jemand Rat?
    Das anpassen des TreeViews ist kein Problem für mich, wenn ich die ID bekommen könnte!!!!!

    Vielen Dank schon mal (auch fürs bis hierhin lesen ;) )
    s.koni

  • Controls abhänig voneinander verschieben

    • s.koni
    • 17. Juni 2010 um 08:53

    Hilft schon weiter - probier es mal aus!

    Danke

  • Controls abhänig voneinander verschieben

    • s.koni
    • 17. Juni 2010 um 07:57

    Hallo,

    ich habe auf einer GUI 2 Controls, einem TreeView und ActiveX Objekt. Beide kann ich auch mittels GUICtrlSetStyle($treeview, $WS_SIZEBOX) und GUICtrlSetStyle($GUIActiveX, $WS_EX_CLIENTEDGE + $WS_SIZEBOX) auch in der Größe verschieben.

    Sieht jemand eine Möglichkeit die beiden Controls in Abhänigkeit zueinander zu brinden, also wenn ich den Treeview schmaler mache, das ActiveX Objekt breiter wird?

    Danke und Gruß Steffen

  • Maus über welchem Fenster? Welches Fenster ist das aktive?

    • s.koni
    • 3. Mai 2010 um 23:08

    Danke - Genau das wars. Bin nicht drauf gekommen!!!
    Gruß
    Steffen

  • Maus über welchem Fenster? Welches Fenster ist das aktive?

    • s.koni
    • 3. Mai 2010 um 22:08

    Hallo,

    irgendwie stehe ich auf dem Schlauch!

    Wie kann ich denn herausfinden (ohne InfoFenster, während der Laufzeit eines Scriptes) welches Fenster gerade das aktive ist.

    Möchte ein Programm erweitern, mit dem auf Tastendruck das Programm der TV-Karte umschaltet (Klappt auch schon!).
    Möchte nun aber nicht nur umschalten und dann wieder auf die alte Mausposition gehen, sonder das vorher aktive Fenster wieder aktivieren.

    Komme im Moment einfach nicht drauf wie das gehen soll.

    Danke schon mal!
    Gruß
    Steffen

  • AdlibEnable Alternative?

    • s.koni
    • 27. April 2010 um 09:29

    Vielen Dank!

    Gruß
    Steffen

  • AdlibEnable Alternative?

    • s.koni
    • 27. April 2010 um 08:58

    Hallo zusammen,

    gibt es für AdlibEnable eine Alternative?

    Wem der Befehl nichts sagt -> Funktion AdlibEnable

    Möchte eine Sub zyklisch abrufen. Hat bisher auch super mit der Funktion AdlibEnable funktioniert. Seit kurzem haben wir nun AutoIt 3.3.6.0 im Einsatz und nun erhalte ich bei SyntaxCehck Prod den Hinweis "ERROR: AdlibEnable(): undefined function."

    Weiß jemand eine Bessere Lösung oder warum es nicht mehr funktioniert?

    Danke schon mal
    Steffen

  • Einzelne Zeichen ersetzen

    • s.koni
    • 9. Februar 2010 um 13:08

    Vielen Dank für die Antwort.

    komme wohl nicht daran vorbei jedes Zeichen für sich zu ersetzen - ob nun in einer Schleife oder einzeln aufgerufen!

    Trotzdem Danke!!!

    Gruß
    Steffen

  • Einzelne Zeichen ersetzen

    • s.koni
    • 9. Februar 2010 um 09:34

    Hallo zusammen,

    ich manipuliere mit einem Script DXF Dateien, lese also eine Datei Zeilenweise ein und gehe dann entsprechender IF-Bedingungen z.B. einen anderen Text aus als in der Origingaldatei steht.

    Beim Durchlauf der Datei möchte ich gleich "Sonderzeichen" richtig umsetzen. Das mache ich bisher mit dem Befehl Replace

    Code
    $InString = "Daá šber asdšjfgjkh„43w5ý3498z hjfnblkjebnv97™0h3490h1fácp!"
    
    
    ConsoleWrite ($InString & @crlf)
    $InString = StringReplace($InString, "", "ü")
    $InString = StringReplace($InString, "", "ü")
    $InString = StringReplace($InString, "„", "ä")
    $InString = StringReplace($InString, "”", "ö")
    $InString = StringReplace($InString, "š", "Ü")
    $InString = StringReplace($InString, "Ž", "Ä")
    $InString = StringReplace($InString, "™", "Ö")
    $InString = StringReplace($InString, "á", "ß")
    $InString = StringReplace($InString, "ý", "²")
    ConsoleWrite ($InString & @crlf)
    
    
    ; Ergebnis in Console:
    ; Daá šber asdšjfgjkh„43w5ý3498z hjfnblkjebnv97™0h3490h1fácp!
    ; Daß Über asdÜjfgjkhä43w5²3498z hjfnüblkjebnv97Ö0h3490h1fßcp!
    Alles anzeigen

    Nun würde ich das gerne in einem Durchlauf machen, z.B. mit dem Befehl StringRegExpReplace - den checke ich aber nicht!
    Habe mal folgendes probiert

    Code
    $sInput = "Daá šber asdšjfgjkh„43w5ý3498z hjfnblkjebnv97™0h3490h1fácp!"
    $sSearch = "[„”šŽ™áý]"
    $sReplace = "üäöÜÄÖß²"
    
    
    $Temp = StringRegExpReplace($sInput, $sSearch, $sReplace)
    ConsoleWrite ($sInput & @crlf & $Temp& @crlf)
    
    
    ; Ergebnis in Console:
    ; Daá šber asdšjfgjkh„43w5ý3498z hjfnblkjebnv97™0h3490h1fácp!
    ; DaüäöÜÄÖß² üäöÜÄÖß²ber asdüäöÜÄÖß²jfgjkhüäöÜÄÖß²43w5üäöÜÄÖß²3498z hjfnüäöÜÄÖß²blkjebnv97üäöÜÄÖß²0h3490h1füäöÜÄÖß²cp!
    Alles anzeigen

    Kann mir jemand hierbei helfen?

    Vielen Dank schon mal!
    Gruß
    Steffen

  • Ini-Daten nutzen

    • s.koni
    • 22. Januar 2010 um 15:03

    Hallo,

    schau dir mal IniReadSection an. Hiermit werden alle Eintragungen der Section in ein Array gelesen, dass du dann mit einer Schleife durchlaufen kannst.

    mfg
    Steffen

  • Mehre Icons in Compilierter Script EXE

    • s.koni
    • 22. Januar 2010 um 14:58

    Hallo,

    seht ihr eine Möglichkeit einem Script beim compilieren mehre Icons mitzugeben?

    mfg
    Steffen

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™