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

Beiträge von dieselwiesel

  • Datenstand einer Software abfragen?

    • dieselwiesel
    • 29. Oktober 2015 um 17:41
    Zitat von alpines

    Wieso...?

    Weil ich zeigen wollte, dass ich weis wie eine Suchfunktion funktioniert und nicht auf fertige Scripte/Schnipsel warte :D

    Ich danke dir für dein Beispiel. Habe auch schon etwas damit rumprobiert, bin aber noch nicht auf den grünen Zweig gekommen. Hatte vergessen zu erwähnen das sich der Updatestand nach einem Update ändert und dann das andere Verzeichnis aktuell ist.

    Spoiler anzeigen
    AutoIt
    #include <File.au3>
    #include <Array.au3>
    $aList = _FileListToArray("daten")
    Global $aCount[4]
    For $i = 1 To $aList[0]
    	;Sofern alles statisch ist (von den Ordnernamen her) kann man es auch hardcoden.
    ;~ 	$aMarke = _FileListToArray("daten" & "\" & $aList[$i])
    	$aDaten1 = _FileListToArray("daten" & "\" & $aList[$i] & "\daten1")
    	$aDaten2 = _FileListToArray("daten" & "\" & $aList[$i] & "\daten2")
    	$aRegEx1 = StringRegExp($aDaten1[1], "stand(\d+)d\.txt", 3)
    	$aRegEx2 = StringRegExp($aDaten2[1], "stand(\d+)d\.txt", 3)
    	If Number($aRegEx1[0]) >= Number($aRegEx2[0]) Then
    	   $aList = $aRegEx1[0]
            Else
    	   $aList = $aRegEx2[0]
            Endif
    MsgBox(0, "Test", $aList)
    Next
    Alles anzeigen


    So bringt es mir in der MsgBox den Datenstand. Jetzt will ich mal schauen wie ich die $aList als Variablen $aCount speichern kann.

  • Datenstand einer Software abfragen?

    • dieselwiesel
    • 28. Oktober 2015 um 07:55

    Danke erstmal für die Antwort!

    Ich habe gestern vor u. nach der Anfrage gesucht und bin des öfteren auf _RecFileListToArray gestoßen. Habe es dann mal so probiert...

    Spoiler anzeigen
    AutoIt
    #include <Array.au3>
    #include <File.au3>
    #include <RecFileListToArray.au3>
    
    
    Local $sDir[4]
    $sdir[0] = '\Daten\Marke1\'
    $sdir[1] = '\Daten\Marke2\'
    $sdir[2] = '\Daten\Marke3\'
    $sdir[3] = '\Daten\Marke4\'
    
    
    Local $sSub[2]
    $sdir[0] = 'Daten1\'
    $sdir[1] = 'Daten2\'
    
    
    For $i = 0 To UBound($sDir) - 1
       For $j = 0 To $sSub[0]
    	  $aFolderList = _RecFileListToArray(@ScriptDir & $sDir[$i] & $sSub[$j], "stand*.txt", 1, 1, 0, 2)
    	  _ArrayDisplay($aFolderList)
       Next
    Next
    Alles anzeigen


    ...es zeigt mir dann jeweils die Pärchen, aber nur von Marke3 und 4, die 1 und 2 macht es nicht 8|

  • Datenstand einer Software abfragen?

    • dieselwiesel
    • 27. Oktober 2015 um 21:36

    Hi @all

    ich suche nach einer Möglichkeit den Datenstand einer Software abzufragen/auszulesen.
    Die Ordnerstruktur schaut so aus...

    Spoiler anzeigen


    1.) LW:\MyProg\Daten\Marke1\Daten1\stand1035d.txt
    LW:\MyProg\Daten\Marke1\Daten2\stand1034d.txt

    2.) LW:\MyProg\Daten\Marke2\Daten1\stand972d.txt
    LW:\MyProg\Daten\Marke2\Daten2\stand975d.txt

    3.) LW:\MyProg\Daten\Marke3\Daten1\stand612d.txt
    LW:\MyProg\Daten\Marke3\Daten2\stand613d.txt

    4.) LW:\MyProg\Daten\Marke4\Daten1\stand1049d.txt
    LW:\MyProg\Daten\Marke4\Daten2\stand1055d.txt


    Leider habe ich noch keine richtige Vorstellung wie man das lösen könnte ?( Wer kann mir den ein oder anderen Denkanstoß dazu geben?

    Hintergrund ist das der niedrigere Datenstand eine Sicherungskopie ist und der dazugehörige Daten1/2 Ordner aus Platzgründen ggf. gelöscht werden könnte. Vllt. kann ich mir später auch noch einen Updater dazu basteln.

    Danke schonmal im Voraus.

  • Von Combobox zur INI?

    • dieselwiesel
    • 24. Oktober 2015 um 23:49

    @chesstiger
    Sieht ja gefährlich aus :D aber es funktioniert! Vielen Dank :thumbup:

  • Von Combobox zur INI?

    • dieselwiesel
    • 24. Oktober 2015 um 20:18

    Hi @all

    Versuche grad die Werte einer Combobox "umzuwandeln" und in eine INI zu schreiben. Habe es so im Moment so "gelöst"...

    Spoiler anzeigen
    AutoIt
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    
    
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 299, 119, 192, 114)
    $Combo1 = GUICtrlCreateCombo("Deutsch", 41, 24, 217, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Englisch|Französisch")
    $Button1 = GUICtrlCreateButton("Schreibe INI", 121, 72, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    		Case $Button1
    		   _schreibeINI()
    
    
    
    
    	EndSwitch
    WEnd
    
    
    Func _schreibeINI()
    
    
       $deutsch = StringSplit("d,1", ",") ;<= Diese Werte sind im Script eingebunden
       $englisch = StringSplit("e,2", ",") ;<= Diese Werte sind im Script eingebunden
       $franzoesisch = StringSplit("f,3", ",") ;<= Diese Werte sind im Script eingebunden
       ;<= weitere Sprachen folgen...
    
    
       $wert = GUICtrlRead($Combo1, 1)
    
    
       If $wert = "Deutsch" Then
    	  IniWrite(@ScriptDir & "\config.ini", "CONFIG", "language", $deutsch[1])
    	  IniWrite(@ScriptDir & "\config.ini", "CONFIG", "langid", $deutsch[2])
       ElseIf $wert = "Englisch" Then
    	  IniWrite(@ScriptDir & "\config.ini", "CONFIG", "language", $englisch[1])
    	  IniWrite(@ScriptDir & "\config.ini", "CONFIG", "langid", $englisch[2])
       ElseIf $wert = "Französisch" Then
    	  IniWrite(@ScriptDir & "\config.ini", "CONFIG", "language", $franzoesisch[1])
    	  IniWrite(@ScriptDir & "\config.ini", "CONFIG", "langid", $franzoesisch[2])
       EndIf
    
    
    EndFunc
    Alles anzeigen


    Allerdings sieht das ziemlich "uncool" aus und es sollen noch 15 weitere Sprachen folgen. Wie kann man das evtl. eleganter Lösen? Danke schonmal im Voraus!

  • Zahlen in String auslesen

    • dieselwiesel
    • 20. August 2015 um 10:49

    Lüppt, vielen Dank!

  • Zahlen in String auslesen

    • dieselwiesel
    • 20. August 2015 um 10:21

    Hallo Leute,

    versuche Zahlen (bzw. das Format) aus einem String auszulesen. Zahlen selber klappt ganz gut, jetzt hab ich aber auch Kombinationen mit nem Bindestrich dazwischen und hier komm ich nicht weiter - also das die Striche auch mit übernommen werden. Hat einer von euch ne Idee?

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    
    
    Example()
    
    
    Func Example()
        ; Create a GUI with various controls.
        Local $hGUI = GUICreate("Example", 300, 200)
    
    
        ; Create a combobox control.
        Local $idComboBox = GUICtrlCreateCombo("", 10, 10, 250, 20)
        Local $idClose = GUICtrlCreateButton("Close", 210, 170, 85, 25)
    
    
        ; Add additional items to the combobox.
        GUICtrlSetData($idComboBox, "E:\|E:\Neuer Ordner\Unterordner\123-456-789|E:\Neuer Ordner\123")
    
    
        ; Display the GUI.
        GUISetState(@SW_SHOW, $hGUI)
    
    
        Local $sComboRead = ""
    
    
        ; Loop until the user exits.
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE, $idClose
                    ExitLoop
    
    
                Case $idComboBox
                    $string = GUICtrlRead($idComboBox)
    				$nstring = ""
    			    $pattern = "((?i)[0-9])"
    			    $var = StringRegExp ($string, $pattern, 3)
    			     If IsArray ($var) Then
    				  For $i = 0 To UBound ($var) - 1
    				  $nstring &= $var [$i]
    			     Next
    			      MsgBox (0,"", $nstring)
    			     Else
    			      MsgBox (0,"","Keine Zahl gefunden!")
    			     EndIf
                    ;MsgBox($MB_SYSTEMMODAL, "", "The combobox is currently displaying: " & $sComboRead, 0, $hGUI)
    
    
            EndSwitch
        WEnd
    
    
        ; Delete the previous GUI and all controls.
        GUIDelete($hGUI)
    EndFunc   ;==>Example
    Alles anzeigen
  • Funktion/GUI schliessen, Script soll aber weiter laufen

    • dieselwiesel
    • 25. Dezember 2014 um 22:27

    Wünsche euch allen frohe Weihnachten!!! :D

    Hab noch ein kleines "Problemchen". An einer Stelle (der Zielauswahl) schafft es das Setup trotz $WS_EX_TOPMOST die transparente GUI in den Hintergrund zu schieben und sie kommt auch nicht wieder in den Vordergrund. Gibt es da eine Möglichkeit das zu umgehen?

    [EDIT]
    Hab es mal mit WinSetOnTop in der _window() Func probiert, damit scheints zu funktionieren - aber wie schaut es mit der Richtigkeit?

    Spoiler anzeigen
    [autoit]


    Func _window()
    $myGUI = setWinHide("Test", 600, 200, 0, 0)
    setText(20, 10, "Groß geschriebener Text", 0x000000, "MS Reference Sans Serif", 30)

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

    Do
    Sleep(100)
    WinSetOnTop($myGUI, "",1)
    Until ProcessWaitClose("setup.exe")
    guidelete($myGUI) ; löscht deine GUI
    EndFunc ;==>_window

    [/autoit]
  • Funktion/GUI schliessen, Script soll aber weiter laufen

    • dieselwiesel
    • 23. Dezember 2014 um 23:00

    @misterspeed
    So "einfach" kanns sein, wenn man Ahnung davon hat ;) Vielen Dank für deine Hilfe!

  • Funktion/GUI schliessen, Script soll aber weiter laufen

    • dieselwiesel
    • 22. Dezember 2014 um 23:44

    @Tweaky
    Danke für die Antwort. Das mit dem WinWait ist, dass der Text erst beim 2. Fenster erscheint.
    Leider bleibt der Text stehen, wenn ich die Setup.exe beende, das _dosomething() geht weiter.

  • Funktion/GUI schliessen, Script soll aber weiter laufen

    • dieselwiesel
    • 22. Dezember 2014 um 16:59

    Hallo Leute,

    möchte einen transparenten Schriftzug während einer Installation anzeigen lassen. Hab im Forum was gutes gefunden, aber leider läufts nich so wie ich gern hätte. Der Schriftzug soll nur solange angezeigt werden, wie die Setup.exe läuft, dann verschwinden und mit der _dosomething() weiter machen. Habe es mit ProcessWaitClose probiert und auch über das Return gelesen - bin aber zu doof das anzuwenden :D Vllt. kann einer von euch mir sagen ob und wie das funktioniert? Danke schonmal...

    Spoiler anzeigen
    [autoit]


    #RequireAdmin
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #NoTrayIcon

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

    ShellExecute(@ScriptDir & "\setup.exe")
    If WinWait("[W:605;H:367]", "") Then _window() ;wenn das Fenster von der Setup.exe kommt die transparente GUI und bringt sich in den Vordergrund
    ;wie kann man das Fenster [W:605;H:367] dann wieder aktivieren?
    ;wenn die Setup.exe fertig ist, soll sich die Func _window() schliessen/beenden und mit der Func _dosomething() weitermachen

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

    Func _window()
    setWinHide("Test",600,200,0,0)
    setText(20,10,"Groß geschriebener Text",0x000000,"MS Reference Sans Serif",30)
    ;setText(20,60,"Klein geschriebener Text")

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE ;ProcessWaitClose("setup.exe")

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

    EndFunc

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

    ;myFunction
    Func setText($x,$y,$text,$color=0x00000D,$fontname="MS Times New Roman",$textgroesse=12)
    local $label = GUICtrlCreateLabel ($text, $x, $y,StringLen($text)*$textgroesse,$textgroesse*2)
    GUICtrlSetFont($label, $textgroesse, 400, -1, $fontname)
    GUICtrlSetColor($label, $color)
    EndFunc

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

    ;Erstellt eine transparente GUI
    Func setWinHide($title, $width, $height, $left, $top)
    local $hGui = GUICreate($title, $width, $height, $left ,$top ,$WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
    local $bkcolor = 0xffffff
    GUISetBkColor($bkcolor)
    DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hGui, "long", $bkcolor, "byte", 255, "long", 0x03)
    GUISetState()
    EndFunc

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

    Func _dosomething()

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

    ;do something

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

    EndFunc

    [/autoit]
  • Prüfen ob bzw. wann Datei vorhanden ist?

    • dieselwiesel
    • 28. Oktober 2014 um 22:53

    @bobekos

    Danke für deine Antwort. Funktioniert soweit ganz gut, nur eins haut nich so recht hin - und zwar mit dem weitersuchen. Es könnte sein, das die Dateien von file001-100 schon entfernt wurden (also negativ), von file101-119 vorhanden sind (positiv) und ab file120 (wieder negativ) noch nicht verfügbar ist.

    [autoit]


    If $iGetInfo > 0 Then ;habe aus dem = ein > gemacht, so wird bis zu einem Wert > 0 gesucht, jetzt müsste der Spieß rumgedreht werden und weitergesucht werden, bis der Wert wieder = oder < 0 wird und davon -1 abgezogen wird

    [/autoit]
  • Prüfen ob bzw. wann Datei vorhanden ist?

    • dieselwiesel
    • 24. Oktober 2014 um 20:25

    Danke für eure Antworten.

    @Matricus
    Das mit dem StringFormat() war ein sehr guter Tip, danke dafür!

    Könnte man das auch noch erweitern, dass weiter gesucht wird, bis es wieder negativ wird - so das man die Spanne kriegt von wo bis wo die Dateien verfügbar sind?

    Was mich auch noch interessiert, lässt sich die Suche mit einem Button unterbrechen und wie ist das in der Schleife wenn man bei to bis unendlich haben möchte?

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

    $number = GUICtrlRead($Combo1)

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

    For $i = $number To (unendlich?) Step +1
    $FileName = StringFormat("%03i", $i)
    $getinfo = InetGetSize($url1 & $filename & $url2)
    GUICtrlSetData($Label1, $filename)
    Sleep(100)
    If $getinfo > 0 Then ExitLoop
    Next

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Prüfen ob bzw. wann Datei vorhanden ist?

    • dieselwiesel
    • 22. Oktober 2014 um 23:09

    Hallo Leute,

    suche grad nach einer Möglichkeit zu schauen ob bzw. ab welcher Nummer eine Datei online verfügbar ist, weis aber nicht wie man es am dümmsten anstellen könnte :D Möchte eine Nummer in eine Inputbox eingeben und dann soll solange geprüft werden bis es positiv wird.

    Sagen wir mal die Datei heist file101.dat und ich gebe in die Box 001 ein, es wiederholt sich bis 101 und macht sich dann bemerkbar das was gefunden wurde. Denke mal das wird mit ner Schleife gehen, aber wie ist das mit dem 001 machbar?

    Danke schonmal im Voraus.

  • Kleines Problem mit 2 For Next Schleifen

    • dieselwiesel
    • 11. Februar 2014 um 13:35

    Super, dank dir!

    Dachte wegen der 2 Variablen müssten es auch 2 Schleifen sein :D Wieder was dazu gelernt.

  • Kleines Problem mit 2 For Next Schleifen

    • dieselwiesel
    • 10. Februar 2014 um 21:32

    Hallo,

    hab grad ein kleines Umsetzproblem mit 2 Schleifen.

    [autoit]


    $drive = StringLeft(@ScriptDir, 2)

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

    Global $userINI[4]
    $userINI[0] = $drive & "\myprog\main\1.ini"
    $userINI[1] = $drive & "\myprog\main\2.ini"
    $userINI[2] = $drive & "\myprog\main\3.ini"
    $userINI[3] = $drive & "\myprog\main\4.ini"

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

    Global $userINI1[4]
    $userINI1[0] = "AA"
    $userINI1[1] = "BB"
    $userINI1[2] = "CC"
    $userINI1[3] = "DD"

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

    For $j = 0 To UBound($userINI) - 1
    For $k = 0 To UBound($userINI1) - 1
    If IniRead($userINI[$j], "Section", "Testkey1", $drive & "\main" & $userINI1[$k] & "") = 0 Then IniWrite($userINI[$j], "Section", "Testkey1", $drive & "\main" & $userINI1[$k] & "")
    If IniRead($userINI[$j], "Section", "Testkey2", $drive & "\main" & $userINI1[$k] & "") = 0 Then IniWrite($userINI[$j], "Section", "Testkey2", $drive & "\main" & $userINI1[$k] & "")
    Next
    Next

    [/autoit]

    Am Ende sollten die INI Dateien so aussehen.

    Code
    ;1.INI
    [Section]
    Testkey1=C:\main\AA\
    Testkey2=C:\main\AA\
    Code
    ;2.INI
    [Section]
    Testkey1=C:\main\BB\
    Testkey2=C:\main\BB\
    Code
    ;3.INI
    [Section]
    Testkey1=C:\main\CC\
    Testkey2=C:\main\CC\
    Code
    ;4.INI
    [Section]
    Testkey1=C:\main\DD\
    Testkey2=C:\main\DD\

    Leider steht am Ende in jeder INI => C:\main\DD\ , finde aber irgendwie den Fehler nicht :rolleyes: Wer kann mir sagen wo es hängt? Danke schonmal.

  • Variablen ständig abfragen?

    • dieselwiesel
    • 6. Februar 2014 um 15:25

    Hallo,

    danke für die Antwort. Sie sollten eigentlich immerzu abgefragt werden (ohne Intervall). Hatte die Funktion jetzt an verschiedene Stellen in der Schleife gesetzt, aber irgendwie tut sich da nichts ?(

  • Variablen ständig abfragen?

    • dieselwiesel
    • 5. Februar 2014 um 23:31

    Hallo Leute,

    kann man Variablen in eine Funktion setzen und via AdlibRegister ständig abfragen oder kann es da zu Problemen kommen? Gibt es evtl. bessere Methoden?

    [autoit]


    AdlibRegister("_test", 250)

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

    Func _test()
    Global $read = RegRead("HKEY_LOCAL_MACHINE\...", "bla")
    EndFunc

    [/autoit]
  • Button mit transp. Icon und Farbänderung

    • dieselwiesel
    • 29. Mai 2013 um 23:24

    RR04
    Danke für das weitere Beispiel! Bin aber irgendwie noch nicht so recht überzeugt davon. Gibt es evtl. andere Varianten/Möglichkeiten um einen Status anzeigen zu lassen? Z.B. so wie im Forum wenn man on- oder offline ist?

  • Button mit transp. Icon und Farbänderung

    • dieselwiesel
    • 27. Mai 2013 um 21:20

    Friesel & RR04
    Danke euch für die Antworten! Ich dachte aber eher in die Richtung...

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form1", 414, 306, 302, 218)
    $Button1 = GUICtrlCreateButton("", 6, 122, 400, 60)
    $Icon1 = GUICtrlCreateIcon("C:\Windows\System32\shell32.dll", -14, 190, 136, 32, 32)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    AdlibRegister("_change", 250)

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

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

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

    EndSwitch
    WEnd

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

    Func _change()
    If ProcessExists('mspaint.exe') Then
    GUICtrlSetbkColor($Button1, 0x00ff00)
    Else
    GUICtrlSetbkColor($Button1, 0xFF0000)
    EndIf
    EndFunc

    [/autoit]


    Also wenn meinprog läuft oder gestartet wird, soll gleich der Status von mspaint.exe geprüft und die entspr. Farbe auf den Button gelegt werden. Allerdings blinkt der Button noch wie verrückt ?( und das Icon lässt den Hintergrund vom Gui durchblitzen. Vllt. kann man auch eine andere Grafik verwenden?

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™