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. SOLVE-SMART

Beiträge von SOLVE-SMART

  • Buttons klickbar machen

    • SOLVE-SMART
    • 31. Januar 2022 um 09:04

    Hi zusammen,

    funktionierender Stand, Main.au3 und Abhängigkeiten (UDFs):

    🔗 Dateien online oder alternativ

    📂 Download zip oder alternativ

    💾 git clone https://github.com/Sven-Seyfert/AutoIt-Forums-Help.git


    Viele Grüße
    Sven

  • ShelExecution und @HIDE

    • SOLVE-SMART
    • 31. Januar 2022 um 08:18

    Hi casi4712 ,

    in meinen post #4 habe ich den fehlenden Backslash bereits hinzugefügt gehabt, dies scheint dir nicht aufgefallen zu sein, naja.

    pasted-from-clipboard.png

    Darum schreibt Schnuffel und Velted bzgl. Konsolenausgabe, message box und wir fragen nach Editor und Ausführung. usw. => dient also alles in Richtung Umgang mit AutoIt und Editor, nicht mal dem Code selbst 😉 .



    In deinem ersten post schreibst du:

    Zitat von casi4712

    [...] ich habe eine Function um einen Ordner zu synchronisieren mit Robocopy [...]

    Dann lass uns doch mal anders herangehen:
    Was heißt synchronisieren für dich? Willst du "Ordner-A" und dessen Inhalt einfach nur in "Ordner-B" an anderer Stelle kopieren oder brauchst du tatsächlich Robocopy?

    Viele Grüße

    Sven

  • ShelExecution und @HIDE

    • SOLVE-SMART
    • 30. Januar 2022 um 13:41

    Hi nochmal,

    was genau bekommst du denn angezeigt wenn du CMD öffnest und Robocopy einfach manuell mit deinen ganzen Parametern mal aufrufst?
    Wenn dort der Fehler liegt, was Schnuffel festgestellt hat, dann wirst du mit deinem AutoIt Aufruf auch nichts bekommen.
    Daher bitte erst den Robocopy Aufruf manuell lauffähig bekommen, dann in AutoIt einbinden 😉 .

    Viele Grüße
    Sven

  • Script zum Hochladen von Dateien auf einen Server

    • SOLVE-SMART
    • 30. Januar 2022 um 13:37

    Hi Lambdax ,

    noch bin ich nicht dazu gekommen mir das Projekt (bzw. die GitHub-Projekte) mal im Detail anzuschauen, doch bisher sieht es sehr interessant und nützlich aus.
    Vielen Dank dafür 👍 . Bei Gelegenheit versuche ich mal paar Tests dazu zu machen.

    Viele Grüße
    Sven

  • ShelExecution und @HIDE

    • SOLVE-SMART
    • 30. Januar 2022 um 13:31

    Hi casi4712 ,

    Zitat von casi4712

    Puh, ganz schöne Menge Code für eine Kopieraktion [...]

    Die Funktion _runProgram() erscheint recht überladen für einen trivialen Aufruf von ShellExecuteWait(), dies muss ich zugeben, ja. Musst du für deinen Fall auch gar nicht verwenden sondern einfach das Beispiel von Oscar nutzen 😉 . Die Funktion _runProgram() ist einfach etwas robuster wenn es um andere Laufwerke/Partitionen geht ... aber egal.

    Zitat von Schnuffel

    [...] das Problem liegt schon in den Aufurfparametern für Robocopy [...]

    Darauf wollte ich hinaus mit meiner Aussage:

    Zitat von SOLVE-SMART

    Also schaue dir erstmal die Consolenausgabe an, ob deine Parameter so stimmen würden, wenn du Robocopy manuell über CMD ausführen würdest 😉 .

    Tipp:

    • Nutzt du SciTE oder VSCode als Editor casi4712 ? Falls nicht tue dies unbedingt. Allein das Syntax highlighting sollte dir einige potenzielle Probleme zeigen können.
    • Anonsten STRG+F5 immer mal zwischendurch ausführen und schauen was der "Check" in der Console ausgibt.
    • Helfen würde es uns auch, wenn du den Consolen-Output bei Fehlern hier postest, dann geht es evtl. noch schneller/genauer.

    Viele Grüße

    Sven

  • ShelExecution und @HIDE

    • SOLVE-SMART
    • 29. Januar 2022 um 22:19

    Hallo casi4712 ,

    hier mal eine Kombination aus dem was Oscar vorgeschlagen hat und einer alten Funktion "_runProgram()" zum Aufruf eines externen Programmes:

    AutoIt
    _syncro()
    
    Func _syncro()
        Local $sRobocopyExeFilePath = 'C:\windows\system32\robocopy.exe'
        Local $sSource              = 'c:\plc\'
        Local $sDestination         = 'f:\plc1\'
        Local $sParams              = StringFormat('%s "%s" /E /Z /MIR /R:3 /W:5 /XD >nul 2>&1 "%sRecycled\" "%sRecycler\" "%sSystem Volume Information\"', $sSource, $sDestination, $sSource, $sSource, $sSource)
    
        _runProgram($sRobocopyExeFilePath, $sParams, True)
        ;~ _runProgram($sRobocopyExeFilePath, $sParams, False, True, False)
        ;~ _runProgram($sRobocopyExeFilePath, $sParams)
    EndFunc
    
    Func _runProgram($sProgramExeFilePath, $sParams = '', $bOnlyTest = False, $bWaitAfterRun = False, $bHidden = True)
        Local $sWaitCommand         = ' /C '
        Local $sDriveLetter         = StringLeft($sProgramExeFilePath, 1)
        Local $sChangeDriveCommand  = $sDriveLetter & ': && '
        Local $sExeFileName         = StringRegExpReplace($sProgramExeFilePath, '(.+?)\\', '', 0)
        Local $sExeFolder           = StringTrimRight($sProgramExeFilePath, StringLen($sExeFileName))
        Local $sChangeDirCommand    = 'cd "' & $sExeFolder & '" '
        Local $sCallProgrammCommand = '&& "' & $sExeFileName & '"'
        Local $sParamsCommand       = ''
        Local $sVisibility          = @SW_HIDE
    
        If $sParams <> '' Then
            $sParamsCommand = ' ' & $sParams
        EndIf
    
        If $bOnlyTest Then
            ConsoleWrite($sChangeDriveCommand & $sChangeDirCommand & $sCallProgrammCommand & $sParamsCommand & @CRLF)
    
            Return
        EndIf
    
        If $bWaitAfterRun Then
            $sWaitCommand = ' /K '
        EndIf
    
        If Not $bHidden Then
            $sVisibility = @SW_SHOW
        EndIf
    
        ShellExecuteWait(@ComSpec, $sWaitCommand & $sChangeDriveCommand & $sChangeDirCommand & $sCallProgrammCommand & $sParamsCommand, '', '', $sVisibility)
    EndFunc
    Alles anzeigen

    Bitte beachte:

    • Im Beispielcode ist Zeile 9 aktiv (nicht auskommentiert). Du bekommst nur den Aufruf von "_runProgram()" mit Parametern in der Console ausgegeben.
    • Wenn du stattdessen Zeile 10 aktivierst, dann wird dein Aufruf wirklich ausgeführt, mit sichtbaren CMD Fenster und es wird gewartet bis du CMD manuell schließt.
    • Wenn du stattdessen Zeile 11 aktivierst, dann wird dein Aufruf ebenfalls ausgeführt, aber unsichtbar und CMD wird automatisch nach Programmausführung geschlossen.

    Also schaue dir erstmal die Consolenausgabe an, ob deine Parameter so stimmen würden, wenn du Robocopy manuell über CMD ausführen würdest 😉 .

    Viele Grüße

    Sven

  • Abfrageergebnisse in Datei/Datenbank schreiben/lesen

    • SOLVE-SMART
    • 28. Januar 2022 um 17:36

    Hi Lashandan ,

    Zitat
    671-e2d75074477521f677908797550b456163b2c1a8.png Zitat von Lashandan Als nächstes sollen die Daten, sofern vorhanden, direkt nach der Auswahl des Rechners im DropDownMenü, im GUI ausgegeben werden.

    Klingt logisch 😀 .

    Zitat von Lashandan

    Ich melde mich wieder

    Davon gehe ich mal aus 😅 , gerne.


    Viele Grüße
    Sven

  • Buttons klickbar machen

    • SOLVE-SMART
    • 28. Januar 2022 um 15:57

    Hi casi4712 ,

    Moombas hat dir bereits die richtige Antwort und ein gutes Beispiel in seinem letzten post (#55) gegeben.
    Nur der Vollständigkeit halber hier die Code-Variante zu dem von mir angenommenen Code-Stand von dir:

    Spoiler anzeigen
    AutoIt
    ; includes ---------------------------------------------------------------------
    #include-once
    #include "GUIBkImage.au3"
    #include "Services.au3"
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiCtrlSetOnHover_UDF.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WinApi.au3>
    #include <WindowsConstants.au3>
    #include <WindowsConstants.au3>
    
    
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    
    
    
    ; declaration ------------------------------------------------------------------
    Global $ARRAY_COLOR_TOP_MIN[3] = [36, 65, 142]
    Global $ARRAY_COLOR_TOP_MAX[3] = [11, 42, 122]
    
    Global $RBOX_EVENT_CLOSE  = 1
    Global $ROUNDES           = 20
    Global $LastHwnd          = 0
    
    Global $PCName            = @ComputerName
    Global $BeepFile          = 'C:\Windows\Temp\beep.wav'
    Global $sTaskName         = '_07_DataCollect'
    Global $sScriptRootFolder = "C:\Users\Administrator\Downloads\"
    
    Global $GUIBKCOLOR        = 0xEEC591
    
    Global $AugVers           = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{92000000-2021-0000-0000-415547494153}", "DisplayVersion")
    Global $sFilePath         = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
    Global $WinBuild          = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentBuild")
    Global $WinDisplayVers    = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "DisplayVersion")
    Global $WinName           = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName")
    
    Global $gMsg, $iPID, $prog
    
    Global $idButton_1
    Global $idButton_2
    Global $idButton_3
    Global $idButton_4
    Global $idButton_5
    Global $idButton_11
    Global $idButton_12
    Global $idButton_13
    Global $idButton_14
    Global $idButton_15
    Global $idButton_16
    Global $idButton_17
    Global $idButton_18
    Global $idButton_19
    Global $idButton_20
    Global $idButton_21
    Global $idButton_22
    Global $idButton_23
    Global $idButton_24
    Global $idButton_32
    Global $idButton_33
    Global $idButton_34
    Global $idButton_35
    Global $idButton_36
    Global $idButton_37
    Global $idButton_38
    Global $idButton_39
    Global $idButton_40
    Global $idButton_41
    Global $idButton_44
    Global $idButton_45
    Global $idButton_46
    Global $idButton_47
    Global $idButton_48
    Global $idButton_51
    Global $idButton_52
    Global $idButton_53
    Global $idButton_54
    Global $idButton_55
    Global $idButton_56
    
    Global $sSqlServiceStatusLabel    = "Local SQL-Server: "
    Global $sApacheServiceStatusLabel = "Local Apache-Server: "
    
    Global $iSqlServiceStatusLabel
    Global $iApacheServiceStatusLabel
    
    
    
    ; processing -------------------------------------------------------------------
    FileInstall("C:\Users\Rickl\Pictures\DSC04006.jpg", "C:\Windows\Temp\hg.jpg", 1)
    
    Global $hGui = RBoxCreate("LAC WartungsTool Beta", 860, 600)
    
    _createLabels()
    _createButtons()
    
    AdlibRegister('_updateServiceStatus', 5000)
    
    ;~ GUICtrlCreatePic('C:\Windows\Temp\hg.jpg', 0, 25, 920, 660)
    
    While True
        CheckX($hGui, $RBOX_EVENT_CLOSE, "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0xA3A3A3)", "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0x555555)")
    
        $gMsg = GUIGetMsg()
        Switch $gMsg
            Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
                GUIDelete($hGui)
                AdlibUnRegister('_updateServiceStatus')
                Exit
    
            Case $idButton_1
                $iPID = Run($sScriptRootFolder & "PC-Einrichtung\PCSETTING_listv2.cmd", "", 10)
    
            Case $idButton_2
                $iPID = Run($sScriptRootFolder & "CustomCOPY.bat", "", 10)
    
            Case $idButton_3
                MsgBox(0, "", 3)
    
            Case $idButton_4
                Global $filename = "C:\Program Files\Notepad++\notepad++.exe"
    
                If FileExists($filename) Then
                    $prog = ShellExecute($filename, "C:\Windows\start\RegWerte_setzen.reg", "", "open", @SW_SHOW)
                Else
                    ;~ $prog = ShellExecute("C:\Windows\start\RegWerte_setzen.reg","","open",@SW_SHOW)
                    $prog = ShellExecute('notepad.exe', 'C:\Windows\start\RegWerte_setzen.reg')
                EndIf
    
            Case $idButton_5
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_11
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_12
                $iPID = RunWait(Run(@ComSpec & " /c " & $sScriptRootFolder & "CreateTasks.cmd"))
                ;~ RunWait(@ComSpec & " /c " & $sScriptRootFolder & "CreateTasks.cmd")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_13
                $iPID = RunWait(Run(@ComSpec & " /c " & $sScriptRootFolder & "ETC\ProxyStandard.cmd"))
                ;~ RunWait(@ComSpec & " /c " & $sScriptRootFolder & "ETC\ProxyStandard.cmd")
                SoundPlay($BeepFile)
    
            Case $idButton_14
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "TestTOOLS\WuReset.bat")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_15
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\WinUpd.cmd")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_16
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "ETC\OfficeRegister.cmd    ")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_17
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\Soft\officeKill.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_19
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\TOOLS\TOOLS\AppsRepair.bat", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_39
                $iPID = Run(@ComSpec & " /c " & $sScriptRootFolder & "Ordner_leeren.cmd")
                ;~ RunWait(@ComSpec & " /c " & $sScriptRootFolder & "Ordner_leeren.cmd")
                ;~ SoundPlay($BeepFile)
    
            Case $idButton_40
                GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "Datentraegerbereinigung\Dtclean.bat")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_41
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\TestGeraete.cmd")
                _SQL()
                ;~ MsgBox(0,"", "Es existiert eine Variable mit dem Namen: " & $st ) ;<= hier soll der name der variable stehen, nicht der wert
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_47
                ;~ ShellExecute($sScriptRootFolder & "Windows10Upgrade9252.exe")
                RunWait($sScriptRootFolder & "Windows10Upgrade9252.exe")
                $iPID = SoundPlay($BeepFile)
                FileDelete("C:\Users\Riegert\Desktop\Windows 10-Update-Assistent.lnk")
    
            Case $idButton_53
                GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
                RunWait(@ComSpec & " /c " & "V:\Austausch-Daten\Riegert\inv2\CSV-Merge10.bat")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_54
                GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
                RunWait(@ComSpec & " /c " & "V:\Austausch-Daten\Riegert\inv2\CSV-Merge_Short.bat")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_55
                GUICtrlSetTip(-1, "Inventar-Liste")
                ShellExecute("\\ds1\Freigaben\Referat_5_Informationstechnologie\51_Hardware_und_Software\511_Inventare\5112_Invertarliste_Hardware\Hardware\Inventarliste Hardware.xls")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_56
                GUICtrlSetTip(-1, "Inventarisierungs-Script ausführen")
                Local $sTaskName = '_07_DataCollect'
                ;~ RunWait("schtasks /Run /TN ' & "$sTaskName"')
                ;~ RunWait('schtasks.exe /Run /TN ' & $sTaskName, '', @SW_HIDE)
                $iPID = SoundPlay($BeepFile)
        EndSwitch
    WEnd
    
    
    
    ; functions --------------------------------------------------------------------
    Func _createLabels()
        GUICtrlCreateLabel("CUSTOMIZING", 10, 35, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        $iSqlServiceStatusLabel = GUICtrlCreateLabel($sSqlServiceStatusLabel, 600, 35, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        $iApacheServiceStatusLabel = GUICtrlCreateLabel($sApacheServiceStatusLabel, 600, 50, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($PCName, 610, 290, 980, 30)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 19, 800) ; bold
    
        GUICtrlCreateLabel($WinBuild, 610, 330, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($WinDisplayVers, 610, 350, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($AugVers, 610, 370, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($WinName, 610, 390, 980, 30)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel("Web-Server: " & _Webserver(), 600, 65, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel("Einzelmodule", 10, 115, 780, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 900) ; bold
    
        GUICtrlCreateLabel("System-Wartung und Checks", 10, 220, 780, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 900) ; bold
    
        GUICtrlCreateLabel("Datenbank", 10, 420, 780, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 900) ; bold
    EndFunc
    
    Func _createButtons()
        $idButton_1  = GUICtrlCreateButton("Customize PC", 10, 55, 100, 20)
                       GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
        $idButton_2  = GUICtrlCreateButton("Image-Prepare", 130, 55, 100, 20)
                       GUICtrlSetTip(-1, "Vorinstallaierte Windows Version anpassen -> Image")
        $idButton_3  = GUICtrlCreateButton("DL aktualisieren", 250, 55, 100, 20)
        $idButton_4  = GUICtrlCreateButton("RegSettings", 370, 55, 100, 20)
        $idButton_5  = GUICtrlCreateButton("TEST", 490, 55, 85, 20)
        $idButton_11 = GUICtrlCreateButton("Standard Software", 10, 135, 100, 20)
        $idButton_12 = GUICtrlCreateButton("Aufgaben", 130, 135, 100, 20)
        $idButton_13 = GUICtrlCreateButton("Standard Proxies", 250, 135, 100, 20)
        $idButton_14 = GUICtrlCreateButton("WinUpd Reset", 370, 135, 100, 20)
        $idButton_15 = GUICtrlCreateButton("UPDATES", 490, 135, 100, 20)
        $idButton_16 = GUICtrlCreateButton("Office registrieren", 610, 135, 100, 20)
        $idButton_17 = GUICtrlCreateButton("Office Kill", 730, 135, 100, 20)
        $idButton_18 = GUICtrlCreateButton("Domäne out/in", 10, 160, 100, 20)
        $idButton_19 = GUICtrlCreateButton("APPS reparieren", 130, 160, 100, 20)
        $idButton_20 = GUICtrlCreateButton("", 250, 160, 100, 20)
        $idButton_21 = GUICtrlCreateButton("", 370, 160, 100, 20)
        $idButton_22 = GUICtrlCreateButton("", 490, 160, 100, 20)
        $idButton_23 = GUICtrlCreateButton("", 610, 160, 100, 20)
        $idButton_24 = GUICtrlCreateButton("", 730, 160, 100, 20)
        $idButton_32 = GUICtrlCreateButton("ggg", 10, 185, 100, 20)
        $idButton_33 = GUICtrlCreateButton("", 130, 185, 100, 20)
        $idButton_34 = GUICtrlCreateButton("", 250, 185, 100, 20)
        $idButton_35 = GUICtrlCreateButton("", 370, 185, 100, 20)
        $idButton_36 = GUICtrlCreateButton("gfgf", 490, 185, 100, 20)
        $idButton_37 = GUICtrlCreateButton("VB ON temp", 610, 185, 100, 20)
        $idButton_38 = GUICtrlCreateButton("VB OFF", 730, 185, 100, 20)
        $idButton_39 = GUICtrlCreateButton("PC-CLEAN", 10, 240, 100, 20)
        $idButton_40 = GUICtrlCreateButton("Win bereinigen", 130, 240, 100, 20)
        $idButton_41 = GUICtrlCreateButton("Geräte Check", 250, 240, 100, 20)
        $idButton_44 = GUICtrlCreateButton("", 610, 240, 100, 20)
        $idButton_45 = GUICtrlCreateButton("", 730, 240, 100, 20)
        $idButton_46 = GUICtrlCreateButton("Win RESET!", 10, 265, 100, 20)
        $idButton_47 = GUICtrlCreateButton("Win Update Ass.", 130, 265, 100, 20)
        $idButton_48 = GUICtrlCreateButton("", 250, 265, 100, 20)
        $idButton_51 = GUICtrlCreateButton("MKLINK EPIC", 610, 265, 100, 20)
        $idButton_52 = GUICtrlCreateButton("", 730, 265, 100, 20)
        $idButton_53 = GUICtrlCreateButton("PC-List long", 490, 340, 100, 20)
        $idButton_54 = GUICtrlCreateButton("PC-List short", 490, 365, 100, 20)
        $idButton_55 = GUICtrlCreateButton("Inventar Liste", 490, 390, 100, 20)
        $idButton_56 = GUICtrlCreateButton("Inventarisieren", 490, 315, 100, 20)
    EndFunc
    
    Func RBoxCreate($Title, $width, $height, $left = -1, $top = -1, $show = 1)
        Local $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
        GUISetBkColor($GUIBKCOLOR, $GUI)
    
        ;~ _GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
    
        $RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)
        GUICtrlSetCursor($RBOX_EVENT_CLOSE, 0)
        GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
        GUICtrlSetFont($RBOX_EVENT_CLOSE, 15, 800)
        GUICtrlSetColor($RBOX_EVENT_CLOSE, 0x555555)
    
        $Title &= " "
        Local $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont($hTitle, 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($hTitle, -2)
    
        Local $Graphic = GUICtrlCreateGraphic(0, 0, $width, 25)
        GUICtrlSetState($Graphic, $Gui_DISABLE)
        ;~ GradientFill($Graphic, 0, 0, $width, 25, $ARRAY_COLOR_TOP_MIN, $ARRAY_COLOR_TOP_MAX)
    
        If $show = 1 Then GUISetState(@SW_SHOW, $GUI)
    
        Return $GUI
    EndFunc
    
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
    
        If Not IsArray($cGui) Then
            Return 0
        EndIf
    
        If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
        If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc
    
    Func _SQL()
        Local $st = False
        Local $FileText ; fehlt!
        Local Const $SeviceName = "SQL Server (AUGIAS)" ; name of the service to test ; Local Const fehlte
    
        RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE) ; send a list of the services that are running to a file
    
        ; hier würde eine Prüfung Sinn machen
        $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt")) ; read that file
    
        If StringInStr($FileText, $SeviceName) Then ; check for the service name
            $st = "RUNNING" ; ich würde True wählen
        Else
            $st = "OFF" ; ich würde False wählen
        EndIf
    
        Return $st
    EndFunc
    
    Func _Webserver()
        Local $ws ; fehlt! und ich würde es hier direkt als = False setzen!
        Local $FileText ;fehlt!
        Local Const $SeviceName = "Apache2.4"
    
        RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE)
    
        ; hier würde eine Prüfung Sinn machen
        $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt")) ; read that file
    
        Local $st
        If StringInStr($FileText, $SeviceName) Then ; check for the service name
            $st = "RUNNING" ; ich würde True wählen
        Else
            $st = "OFF" ; ich würde False wählen
        EndIf
    
        Return $st
    EndFunc
    
    Func Request_Service($Servicename)
        If _Service_Exists($Servicename) Then
            Return Status(_Service_QueryStatus($Servicename)[1])
        Else
            Return 'Service does not exist'
        EndIf
    EndFunc
    
    Func Status($Status)
        Switch $Status
            Case 1
                $Status = 'SERVICE_STOPPED'
            Case 2
                $Status = 'SERVICE_START_PENDING'
            Case 3
                $Status = 'SERVICE_STOP_PENDING'
            Case 4
                $Status = 'SERVICE_RUNNING'
            Case 5
                $Status = 'SERVICE_CONTINUE_PENDING'
            Case 6
                $Status = 'SERVICE_PAUSE_PENDING'
            Case 7
                $Status = 'SERVICE_PAUSED'
            Case Else
                $Status = 'SERVICE_UNKNOWN_STATE'
        EndSwitch
    
        Return ($Status)
    EndFunc
    
    Func _updateServiceStatus()
        GUICtrlSetData($iSqlServiceStatusLabel, $sSqlServiceStatusLabel & Request_Service("MSSQL"))
        GUICtrlSetData($iApacheServiceStatusLabel, $sApacheServiceStatusLabel & Request_Service("Apache2.4"))
    EndFunc
    Alles anzeigen


    Und hier siehst du den "Diff" - was tatsächlich geändert wurde zur Variante vorher.

    Viele Grüße

    Sven

  • Abfrageergebnisse in Datei/Datenbank schreiben/lesen

    • SOLVE-SMART
    • 28. Januar 2022 um 12:02

    Hi Lashandan ,

    Zitat von Lashandan

    Den gesamte Code möchte ich aktuell noch nicht präsentieren da er ein paar sensible Daten erhält.


    Okay, sowas dachte ich mir schon. Dann hier mal ein Beispiel um zu klären, ob du dies meinst/brauchst:

    AutoIt
    ; includes ---------------------------------------------------------------------
    #include-once
    
    
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    
    
    
    ; declaration ------------------------------------------------------------------
    Global Const $GUI_EVENT_CLOSE = -3
    Global $hGui
    Global $cDropdown
    Global $cLoadButton
    Global $sListOfComputer = 'Et;repellendus;eos;quasi;adipisci;rerum;aperiam;Voluptatem;ea;nisi;Soluta;expedita'
    
    
    ; processing -------------------------------------------------------------------
    _createGui()
    _createGuiElements()
    
    While True
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
    
            Case $cLoadButton
                _fillCombobox($sListOfComputer)
        EndSwitch
    WEnd
    
    _guiDispose()
    
    
    
    ; functions --------------------------------------------------------------------
    Func _createGui()
        $hGui = GUICreate('Demo', 350, 250)
    EndFunc
    
    Func _createGuiElements()
        $cDropdown   = GUICtrlCreateCombo('Bitte wählen ...', 15, 15, 320)
        $cLoadButton = GUICtrlCreateButton('Laden', 15, 50, 320)
    
        GUISetState(@SW_SHOW)
    EndFunc
    
    Func _guiDispose()
        GUIDelete($hGUI)
        Exit
    EndFunc
    
    Func _fillCombobox($sData)
        Local $sListOfComputer = StringReplace($sData, ';', '|')
        GUICtrlSetData($cDropdown, $sListOfComputer)
    EndFunc
    Alles anzeigen


    Viele Grüße
    Sven

  • Abfrageergebnisse in Datei/Datenbank schreiben/lesen

    • SOLVE-SMART
    • 28. Januar 2022 um 10:49

    Hi Lashandan ,


    kannst du ggf. deinen Code (bestenfalls gesamt als *.zip) zu Verfügung stellen oder geht das auf Grund des Datenschutz nicht? Mir fällt es schwer eine hoffentlich passende Antwort zu geben, wenn ich keine Testdaten dazu erzeugen kann/habe.

    Zitat von Lashandan

    Hab dann versucht das Array aufzulösen und wiederum in eine Listenvariable zu schmeißen um sie anschließend in die Dropdownliste zu übergeben.

    Verstehe den Sinn bzw. das Ziel dazu nicht. Du willst Informationen eines Arrays der Combobox übergeben, nehme ich an? Dann sollte die Funktion doch helfen oder nicht?

    AutoIt
    _GUICtrlComboBoxEx_AddString()



    Viele Grüße
    Sven

  • Buttons klickbar machen

    • SOLVE-SMART
    • 26. Januar 2022 um 19:44

    Hi casi4712 ,

    ausgehend von diesem Code-Stand:

    Spoiler anzeigen
    AutoIt
    ; includes ---------------------------------------------------------------------
    #include-once
    #include "GUIBkImage.au3"
    #include "Services.au3"
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiCtrlSetOnHover_UDF.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WinApi.au3>
    #include <WindowsConstants.au3>
    #include <WindowsConstants.au3>
    
    
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    
    
    
    ; declaration ------------------------------------------------------------------
    Global $ARRAY_COLOR_TOP_MIN[3] = [36, 65, 142]
    Global $ARRAY_COLOR_TOP_MAX[3] = [11, 42, 122]
    
    Global $RBOX_EVENT_CLOSE  = 1
    Global $ROUNDES           = 20
    Global $LastHwnd          = 0
    
    Global $PCName            = @ComputerName
    Global $BeepFile          = 'C:\Windows\Temp\beep.wav'
    Global $sTaskName         = '_07_DataCollect'
    Global $sScriptRootFolder = "C:\Users\Administrator\Downloads\"
    
    Global $GUIBKCOLOR        = 0xEEC591
    
    Global $AugVers           = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{92000000-2021-0000-0000-415547494153}", "DisplayVersion")
    Global $sFilePath         = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
    Global $WinBuild          = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentBuild")
    Global $WinDisplayVers    = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "DisplayVersion")
    Global $WinName           = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName")
    
    Global $gMsg, $iPID, $prog
    
    Global $idButton_1
    Global $idButton_2
    Global $idButton_3
    Global $idButton_4
    Global $idButton_5
    Global $idButton_11
    Global $idButton_12
    Global $idButton_13
    Global $idButton_14
    Global $idButton_15
    Global $idButton_16
    Global $idButton_17
    Global $idButton_18
    Global $idButton_19
    Global $idButton_20
    Global $idButton_21
    Global $idButton_22
    Global $idButton_23
    Global $idButton_24
    Global $idButton_32
    Global $idButton_33
    Global $idButton_34
    Global $idButton_35
    Global $idButton_36
    Global $idButton_37
    Global $idButton_38
    Global $idButton_39
    Global $idButton_40
    Global $idButton_41
    Global $idButton_44
    Global $idButton_45
    Global $idButton_46
    Global $idButton_47
    Global $idButton_48
    Global $idButton_51
    Global $idButton_52
    Global $idButton_53
    Global $idButton_54
    Global $idButton_55
    Global $idButton_56
    
    Global $iServiceStatusLabel = ""
    
    
    
    ; processing -------------------------------------------------------------------
    FileInstall("C:\Users\Rickl\Pictures\DSC04006.jpg", "C:\Windows\Temp\hg.jpg", 1)
    
    Global $hGui = RBoxCreate("LAC WartungsTool Beta", 840, 600)
    
    _createLabels()
    _createButtons()
    
    ;~ GUICtrlCreatePic('C:\Windows\Temp\hg.jpg', 0, 25, 920, 660)
    
    While True
        CheckX($hGui, $RBOX_EVENT_CLOSE, "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0xA3A3A3)", "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0x555555)")
    
        $gMsg = GUIGetMsg()
        Switch $gMsg
            Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
                GUIDelete($hGui)
                Exit
    
            Case $idButton_1
                $iPID = Run($sScriptRootFolder & "PC-Einrichtung\PCSETTING_listv2.cmd", "", 10)
    
            Case $idButton_2
                $iPID = Run($sScriptRootFolder & "CustomCOPY.bat", "", 10)
    
            Case $idButton_3
                MsgBox(0, "", 3)
    
            Case $idButton_4
                Global $filename = "C:\Program Files\Notepad++\notepad++.exe"
    
                If FileExists($filename) Then
                    $prog = ShellExecute($filename, "C:\Windows\start\RegWerte_setzen.reg", "", "open", @SW_SHOW)
                Else
                    ;~ $prog = ShellExecute("C:\Windows\start\RegWerte_setzen.reg","","open",@SW_SHOW)
                    $prog = ShellExecute('notepad.exe', 'C:\Windows\start\RegWerte_setzen.reg')
                EndIf
    
            Case $idButton_5
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_11
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_12
                $iPID = RunWait(Run(@ComSpec & " /c " & $sScriptRootFolder & "CreateTasks.cmd"))
                ;~ RunWait(@ComSpec & " /c " & $sScriptRootFolder & "CreateTasks.cmd")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_13
                $iPID = RunWait(Run(@ComSpec & " /c " & $sScriptRootFolder & "ETC\ProxyStandard.cmd"))
                ;~ RunWait(@ComSpec & " /c " & $sScriptRootFolder & "ETC\ProxyStandard.cmd")
                SoundPlay($BeepFile)
    
            Case $idButton_14
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "TestTOOLS\WuReset.bat")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_15
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\WinUpd.cmd")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_16
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "ETC\OfficeRegister.cmd    ")
                ;~ $iPID = Run($sScriptRootFolder & "PC-Einrichtung\AddedApps.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_17
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\Soft\officeKill.cmd", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_19
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\TOOLS\TOOLS\AppsRepair.bat", "", 10)
                SoundPlay($BeepFile)
    
            Case $idButton_36
                Local $sServiceName = "TermService"
                GUICtrlSetData($iServiceStatusLabel, $sServiceName & ": " & Request_Service($sServiceName))
    
            Case $idButton_39
                $iPID = Run(@ComSpec & " /c " & $sScriptRootFolder & "Ordner_leeren.cmd")
                ;~ RunWait(@ComSpec & " /c " & $sScriptRootFolder & "Ordner_leeren.cmd")
                ;~ SoundPlay($BeepFile)
    
            Case $idButton_40
                GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "Datentraegerbereinigung\Dtclean.bat")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_41
                RunWait(@ComSpec & " /c " & $sScriptRootFolder & "PC-Einrichtung\TestGeraete.cmd")
                _SQL()
                ;~ MsgBox(0,"", "Es existiert eine Variable mit dem Namen: " & $st ) ;<= hier soll der name der variable stehen, nicht der wert
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_47
                ;~ ShellExecute($sScriptRootFolder & "Windows10Upgrade9252.exe")
                RunWait($sScriptRootFolder & "Windows10Upgrade9252.exe")
                $iPID = SoundPlay($BeepFile)
                FileDelete("C:\Users\Riegert\Desktop\Windows 10-Update-Assistent.lnk")
    
            Case $idButton_53
                GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
                RunWait(@ComSpec & " /c " & "V:\Austausch-Daten\Riegert\inv2\CSV-Merge10.bat")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_54
                GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
                RunWait(@ComSpec & " /c " & "V:\Austausch-Daten\Riegert\inv2\CSV-Merge_Short.bat")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_55
                GUICtrlSetTip(-1, "Inventar-Liste")
                ShellExecute("\\ds1\Freigaben\Referat_5_Informationstechnologie\51_Hardware_und_Software\511_Inventare\5112_Invertarliste_Hardware\Hardware\Inventarliste Hardware.xls")
                $iPID = SoundPlay($BeepFile)
    
            Case $idButton_56
                GUICtrlSetTip(-1, "Inventarisierungs-Script ausführen")
                Local $sTaskName = '_07_DataCollect'
                ;~ RunWait("schtasks /Run /TN ' & "$sTaskName"')
                ;~ RunWait('schtasks.exe /Run /TN ' & $sTaskName, '', @SW_HIDE)
                $iPID = SoundPlay($BeepFile)
        EndSwitch
    WEnd
    
    
    
    ; functions --------------------------------------------------------------------
    Func _createLabels()
        GUICtrlCreateLabel("CUSTOMIZING" & _StringRepeat(" ", 185) & "Local SQL-Server: " & _SQL(), 10, 35, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($PCName, 610, 290, 980, 30)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 19, 800) ; bold
    
        GUICtrlCreateLabel($WinBuild, 610, 330, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($WinDisplayVers, 610, 350, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($AugVers, 610, 370, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel($WinName, 610, 390, 980, 30)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel(" Web-Server                : " & _Webserver(), 643, 50, 980, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel("Einzelmodule", 10, 115, 780, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 900) ; bold
    
        GUICtrlCreateLabel("System-Wartung und Checks", 10, 220, 780, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 900) ; bold
    
        GUICtrlCreateLabel("Datenbank", 10, 420, 780, 20)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        GUICtrlSetFont(-1, 9, 900) ; bold
    
        $iServiceStatusLabel = GUICtrlCreateLabel("Service", 10, 440, 780, 20)
    EndFunc
    
    Func _createButtons()
        $idButton_1  = GUICtrlCreateButton("Customize PC", 10, 55, 100, 20)
                       GUICtrlSetTip(-1, "Standard Image an Benutzer anpassen")
        $idButton_2  = GUICtrlCreateButton("Image-Prepare", 130, 55, 100, 20)
                       GUICtrlSetTip(-1, "Vorinstallaierte Windows Version anpassen -> Image")
        $idButton_3  = GUICtrlCreateButton("DL aktualisieren", 250, 55, 100, 20)
        $idButton_4  = GUICtrlCreateButton("RegSettings", 370, 55, 100, 20)
        $idButton_5  = GUICtrlCreateButton("TEST", 490, 55, 85, 20)
        $idButton_11 = GUICtrlCreateButton("Standard Software", 10, 135, 100, 20)
        $idButton_12 = GUICtrlCreateButton("Aufgaben", 130, 135, 100, 20)
        $idButton_13 = GUICtrlCreateButton("Standard Proxies", 250, 135, 100, 20)
        $idButton_14 = GUICtrlCreateButton("WinUpd Reset", 370, 135, 100, 20)
        $idButton_15 = GUICtrlCreateButton("UPDATES", 490, 135, 100, 20)
        $idButton_16 = GUICtrlCreateButton("Office registrieren", 610, 135, 100, 20)
        $idButton_17 = GUICtrlCreateButton("Office Kill", 730, 135, 100, 20)
        $idButton_18 = GUICtrlCreateButton("Domäne out/in", 10, 160, 100, 20)
        $idButton_19 = GUICtrlCreateButton("APPS reparieren", 130, 160, 100, 20)
        $idButton_20 = GUICtrlCreateButton("", 250, 160, 100, 20)
        $idButton_21 = GUICtrlCreateButton("", 370, 160, 100, 20)
        $idButton_22 = GUICtrlCreateButton("", 490, 160, 100, 20)
        $idButton_23 = GUICtrlCreateButton("", 610, 160, 100, 20)
        $idButton_24 = GUICtrlCreateButton("", 730, 160, 100, 20)
        $idButton_32 = GUICtrlCreateButton("ggg", 10, 185, 100, 20)
        $idButton_33 = GUICtrlCreateButton("", 130, 185, 100, 20)
        $idButton_34 = GUICtrlCreateButton("", 250, 185, 100, 20)
        $idButton_35 = GUICtrlCreateButton("", 370, 185, 100, 20)
        $idButton_36 = GUICtrlCreateButton("gfgf", 490, 185, 100, 20)
        $idButton_37 = GUICtrlCreateButton("VB ON temp", 610, 185, 100, 20)
        $idButton_38 = GUICtrlCreateButton("VB OFF", 730, 185, 100, 20)
        $idButton_39 = GUICtrlCreateButton("PC-CLEAN", 10, 240, 100, 20)
        $idButton_40 = GUICtrlCreateButton("Win bereinigen", 130, 240, 100, 20)
        $idButton_41 = GUICtrlCreateButton("Geräte Check", 250, 240, 100, 20)
        $idButton_44 = GUICtrlCreateButton("", 610, 240, 100, 20)
        $idButton_45 = GUICtrlCreateButton("", 730, 240, 100, 20)
        $idButton_46 = GUICtrlCreateButton("Win RESET!", 10, 265, 100, 20)
        $idButton_47 = GUICtrlCreateButton("Win Update Ass.", 130, 265, 100, 20)
        $idButton_48 = GUICtrlCreateButton("", 250, 265, 100, 20)
        $idButton_51 = GUICtrlCreateButton("MKLINK EPIC", 610, 265, 100, 20)
        $idButton_52 = GUICtrlCreateButton("", 730, 265, 100, 20)
        $idButton_53 = GUICtrlCreateButton("PC-List long", 490, 340, 100, 20)
        $idButton_54 = GUICtrlCreateButton("PC-List short", 490, 365, 100, 20)
        $idButton_55 = GUICtrlCreateButton("Inventar Liste", 490, 390, 100, 20)
        $idButton_56 = GUICtrlCreateButton("Inventarisieren", 490, 315, 100, 20)
    EndFunc
    
    Func RBoxCreate($Title, $width, $height, $left = -1, $top = -1, $show = 1)
        Local $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
        GUISetBkColor($GUIBKCOLOR, $GUI)
    
        ;~ _GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
    
        $RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)
        GUICtrlSetCursor($RBOX_EVENT_CLOSE, 0)
        GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
        GUICtrlSetFont($RBOX_EVENT_CLOSE, 15, 800)
        GUICtrlSetColor($RBOX_EVENT_CLOSE, 0x555555)
    
        $Title &= " "
        Local $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont($hTitle, 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($hTitle, -2)
    
        Local $Graphic = GUICtrlCreateGraphic(0, 0, $width, 25)
        GUICtrlSetState($Graphic, $Gui_DISABLE)
        ;~ GradientFill($Graphic, 0, 0, $width, 25, $ARRAY_COLOR_TOP_MIN, $ARRAY_COLOR_TOP_MAX)
    
        If $show = 1 Then GUISetState(@SW_SHOW, $GUI)
    
        Return $GUI
    EndFunc
    
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
    
        If Not IsArray($cGui) Then
            Return 0
        EndIf
    
        If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
        If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc
    
    Func _SQL()
        Local $st = False
        Local $FileText ; fehlt!
        Local Const $SeviceName = "SQL Server (AUGIAS)" ; name of the service to test ; Local Const fehlte
    
        RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE) ; send a list of the services that are running to a file
    
        ; hier würde eine Prüfung Sinn machen
        $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt")) ; read that file
    
        If StringInStr($FileText, $SeviceName) Then ; check for the service name
            $st = "RUNNING" ; ich würde True wählen
        Else
            $st = "OFF" ; ich würde False wählen
        EndIf
    
        Return $st
    EndFunc
    
    Func _Webserver()
        Local $ws ; fehlt! und ich würde es hier direkt als = False setzen!
        Local $FileText ;fehlt!
        Local Const $SeviceName = "Apache2.4"
    
        RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE)
    
        ; hier würde eine Prüfung Sinn machen
        $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt")) ; read that file
    
        Local $st
        If StringInStr($FileText, $SeviceName) Then ; check for the service name
            $st = "RUNNING" ; ich würde True wählen
        Else
            $st = "OFF" ; ich würde False wählen
        EndIf
    
        Return $st
    EndFunc
    
    ;;;;;;;;; wie am besten per parameter servicename in ein Label einbinden ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func Request_Service($Servicename)
        If _Service_Exists($Servicename) Then
            Return Status(_Service_QueryStatus($Servicename)[1])
        Else
            Return 'Service does not exist'
        EndIf
    EndFunc
    
    Func Status($Status)
        Switch $Status
            Case 1
                $Status = 'SERVICE_STOPPED'
            Case 2
                $Status = 'SERVICE_START_PENDING'
            Case 3
                $Status = 'SERVICE_STOP_PENDING'
            Case 4
                $Status = 'SERVICE_RUNNING'
            Case 5
                $Status = 'SERVICE_CONTINUE_PENDING'
            Case 6
                $Status = 'SERVICE_PAUSE_PENDING'
            Case 7
                $Status = 'SERVICE_PAUSED'
            Case Else
                $Status = 'SERVICE_UNKNOWN_STATE'
        EndSwitch
    
        Return ($Status)
    EndFunc
    Alles anzeigen

    Und diesen Abhängigkeiten/UDFs hier, funktioniert die Aktualisierung nach Statusänderung wunderbar.

    - Also mit dem Klick auf Button mit Label "gfgf" wird der Status angezeigt.

    - Wenn du einen Dienst stoppst, im Beispiel von TermService (Remote Desktop Services) wie im Code, wird von SERVICE_RUNNING zu SERVICE_STOPPED aktualisiert.

    - Namen der Dienste können abweichen, ich arbeite mit einem englischen Windows.

    Bitte stelle sicher, dass du den selben Code und die selben UDFs verwendest! Wenn das bei dir passt, zeige ich dir wie das mit den Intervall funktioniert 😉 .


    Viele Grüße

    Sven

  • Include UDFs versus Snippets einfügen (VSCode-AutoItSnippets)

    • SOLVE-SMART
    • 26. Januar 2022 um 19:03

    Hi und bitteschön Oscar ,

    freut mich das es nun klappt - besser aussieht 😁 🎉 .

    hi MojoeB ,

    wenn der VSCode-Einstieg tatsächlich problematisch sein sollte, schreibe ich mal was zusammen. Wartet aber bitte nicht darauf, das mache ich sobald ich die Kapazität dazu habe 😉 .
    Das TODO habe ich schon mal auf mein "Planning-Board" aufgenommen 🤭 .

    Noch mal zu dir BugFix :

    Zitat von BugFix

    Farbdesign "Tomorrow Night Blue"

    Ich nutze übrigens One Dark Pro was mir neben AutoIt insbesondere bei anderen Sprachen super gefällt.

    Viele Grüße

    Sven

  • Include UDFs versus Snippets einfügen (VSCode-AutoItSnippets)

    • SOLVE-SMART
    • 26. Januar 2022 um 16:56

    Hi nochmal,

    Zitat von BugFix

    Ja, das sind so Paradigmen, die oft als unverrückbar dargestellt werden (wie z. B. auch die 80-Zeichen Zeilenlänge in Python) [...]

    Ja da gebe ich dir Recht, manchmal sollte man diese Dinge hinterfragen, klar.
    Zum Punkt "Gewohnheitssache" => absolut, stimme ich zu.

    Zitat von Oscar

    [...] aber trotzdem kein vollständiges Syntax highlighting [...]

    Hmm, vielleicht komme ich mal dazu 'nen kleines Tutorial dazu zu schreiben. Wirklich klein, damit die erste Hürde gering ist.

    Zitat von Oscar

    Meine Frage wäre jetzt eher, ob man eigene Snippets einbauen kann?

    Ja klar 😀 , einfach [F1] > ">snippets" > "Preferences: Configure User Snippets" > "AutoIt" auswählen und Snippet in JSON Syntax einfügen.

    Code: Beispiel
    {
        "AddBackslashToPathEnd": {
            "body": [
                "Func _addBackslashToPathEnd($$sPath)",
                "    If StringRight($$sPath, 1) <> '\\' Then $$sPath &= '\\'",
                "",
                "    Return $$sPath",
                "EndFunc"
            ],
            "description": "Ensure trailing backslash for a path.",
            "prefix": "!au3_addBackslashToPathEnd"
        }
    }
    Alles anzeigen

    Wichtig dabei ist nur, dass ein "$" Zeichen durch "$$" ersetzt wird. Speichern und du kannst dein Snippet zu deiner Sprache (in unserem Fall AutoIt) aufrufen und verwenden.

    Zitat von Oscar

    Aber ich werde für AutoIt wohl doch bei SciTE4AutoIt bleiben.

    Dein gutes Recht, wenn auch schade 😁 .

    Viele Grüße

    Sven

  • Include UDFs versus Snippets einfügen (VSCode-AutoItSnippets)

    • SOLVE-SMART
    • 26. Januar 2022 um 16:44

    Hi AspirinJunkie ,

    Danke auch dir 😀 . Zugegebenermaßen hat mir Melba23 (aus dem englischen Forum) ebenfalls solch einen Hinweis gegeben bzgl. "Au3Stripper". Werde mich damit mal etwas näher beschäftigen.

    Zitat von AspirinJunkie

    Diese Ansätze sollten deutlich besser sein, als sich bestimmte Funktionen daraus als Snippets reinzubauen.
    Zum einen bläht man sich eine Datei auf anstatt bestimmte Funktionalitäten in Module ausgelagert zu haben [...]

    Persönlich gefällt mir der Snippet-Ansatz besser doch darüber kann man sicher streiten. Allerdings muss das einfügen eines Snippets nicht bedeuten, dass man nicht trotzdem in "Modulen" arbeiten kann. Es sollte sich sogar ergänzen bestenfalls. Ich versuche diesen Ansatz der Projektstruktur (auslagern in Modulen) in (fast) all' meinen Projekten zu berücksichtigen wie bspw. hier oder hier (jeweils im src Ordner).

    Zitat von AspirinJunkie

    [...] zum anderen gibt es in UDFs auch oft zig Seitenabhängigkeiten wie z.B. zu bestimmten Konstante

    Das stimmt, jedoch sollen die Snippets solche UDF Klassen nicht komplett ersetzen, dass können sie auch gar nicht, genau aus den von dir genannten Gründen. Ein Snippet ist aus meiner Sicht eher eine abgeschlossen Funktion mit bestenfalls nur einer Aufgabe. Auch wenn einige meiner bisherigen Snippets nicht ganz dahingehen passen 🧐 .

    Danke für die Anregungen und Einschätzungen. Da habe ich was zum grübeln 😁 .

    Viele Grüße

    Sven

  • Include UDFs versus Snippets einfügen (VSCode-AutoItSnippets)

    • SOLVE-SMART
    • 26. Januar 2022 um 15:56

    Hi BugFix ,


    Danke für dein Feedback 😀 . Kann ich nachvollziehen das du dir gern mit Lua SciTE nach deinen Bedürfnissen anpasst und dir entsprechend alles so konfigurierst wie du es magst.
    Für mich war die Umstellung anfangs auch nicht über Nacht die richtige Entscheidung, doch mittlerweile ist VSCode so anpassbar, ähnlich oder sogar mehr noch als SciTE (je nach Bedarf natürlich), dass ich die Arbeit damit nicht missen wöllte. Insbesondere für den Fakt: "Ein Editor für (nahezu) alles" 😉 .

    hi Oscar ,

    auch dir Danke für dein Feedback 👍 . Also ich nutze die Extension von Damien "Autoit", welche seit über einem Jahr von @loganch (englisches Forum) weitergeführt und maintained wird.

    damien-autoit-loganch.png

    Diese hat vollständiges Syntax highlighting, IntelliSense und andere Spielereien (ansonsten wäre ich bei SciTE geblieben). Kann sein das du da noch etwas konfigurieren musst, doch soweit ich mich erinnere war das fast nix 😳 . AutoIt by 4ern ist nicht so gut bzw. wird nicht mehr gepflegt soweit ich weiß. Bitte nicht beide Extensions gleichzeitig aktiv haben, dass kann ggf. schon dein fehlendes Syntax highlighting erklären.

    Zitat von Oscar

    Deine Snippetsammlung ist recht umfangreich, wenn auch manche Einzeiler überflüssig erscheinen (IMHO).

    Da geb' ich dir absolut Recht 😁 , manches ist ziemlich alt und vielleicht sogar überflüssig. Manches davon nutze ich (und hoffentlich auch viele andere Leute) regelmäßig.

    Zitat von Oscar

    Die vielen Leerzeilen in den Funktionen finde ich persönlich eher zu viel, aber das ist auch Geschmackssache.

    Ja Geschmackssache schon, aber nur bedingt. Ich bin durch .NET ziemlich auf Übersichtlichkeit, Lesbarkeit und andere Clean Code Askpekte getrimmt, daher sehen die Funktionen so aus.

    Zitat von Oscar

    Kann man die Snippets anpassen?

    Wenn ich sie anpasse bzw. ein Contributer, wirkt sich dies auf alle die die Extension in VSCode eingebunden haben aus. Falls deine Frage darauf abzielt?
    Ansonsten steht es dir natürlich frei, nachdem du die jeweilige Funktion bei dir verwendest/eingefügt hast, diese von Leerzeilen zu befreien 😂 .

    Viele Grüße

    Sven

  • Include UDFs versus Snippets einfügen (VSCode-AutoItSnippets)

    • SOLVE-SMART
    • 26. Januar 2022 um 13:11

    Hi Leute,

    kleiner push zu diesem Thema 😅 .

    Gibt es Meinungen, Pros und Contras, Wünsche, Ideen etc.? Freue mich wirklich über Feedback dazu (auch wenn dies evtl. negativ ausfällt).
    Danke euch 🤞 .

    Viele Grüße

    Sven

  • Buttons klickbar machen

    • SOLVE-SMART
    • 26. Januar 2022 um 13:05

    Hi Bitnugger ,

    es bleibt jedem selbst überlassen wie viel Geduld und Hilfsbereitschaft er aufbringen möchte, auch wenn du von der Geduld deiner angesprochenen Leuten profitiert hast 😀 .
    Schließlich funktioniert das Forum auf rein freiwilliger Basis.

    Lasst uns bitte nicht zu sehr in philosophische bzw. auch erwartungsgetriebene Überlegungen abtrifften (ich ertappe mich gelegentlich selbst dabei 😊).
    Fakt ist doch das man entweder casi4712 weiter hilft und unterstützt oder nicht. Ich für meinen Teil biete mit post #43 dazu nochmal meine Hilfestellung an, wenn auch evtl. die Letzte dazu.

    Viele Grüße

    Sven

  • Buttons klickbar machen

    • SOLVE-SMART
    • 25. Januar 2022 um 22:48

    Hi casi4712,

    also Chris, ich habe mir jetzt mal richtig viel Arbeit gemacht und hoffe das hilft dir auch für die Zukunft 🤞 .
    Am Ende meiner gleich folgenden Ausführungen (Punkt 4) habe ich dir ein Beispiel bzgl. deiner Frage zur Aktualisierung eines Labels mit in den Code gepackt 😀 .

    Okay, legen wir los:

    1. Ich habe ein GitHub repository AutoIt-Forums-Help angelegt um an Hand deines Beispiels/Problems hier (immerhin sind wir bereits bei post #42) den Fortschritt deutlich zu machen.
      01.png
    2. Für dein Thema 87580-buttons-klickbar-machen gibt es dort einen Ordner in denen dein Skript liegt (benannt mit Main.au3) sowie die Abhängigkeiten (die Skripte die ich mir hier zusammengesucht habe bzw. die von den anderen teilweise zu Verfügung gestellt wurden).
      02.png
    3. In der Historie der Codeänderungen (der Commits) siehst du welche Schritte ich getan habe um dein Skript zu verbessern, etwas Struktur aufzubauen und vorhandene Fehler zu beseitigen.
      03.png
    4. Wenn du nun auf den Button gfgf klickst (Zeile 169, "$idButton_36") wird der Label-Text Service (Zeile 263, "$iServiceStatusLabel") durch den gefundenen Status der Funktion Request_Service() ersetzt.


      04.png
    5. Wichtig ist, dass du das Label welches du später noch bearbeiten willst mit einer globalen Variable außerhalb der Funktion _createLabels() vorher deklarierst (Zeile 85).
    6. Was ich alles nicht gemacht habe: Variablenbenennung angepasst, Abstraktion verbessert etc.


    Nun liegt es an dir 😉 .

    - Mein Vorschlag ist es, dass du ab jetzt diesen Code als Ansatzpunkt nimmst und deine folgenden Änderungen/Erweiterungen dort einarbeitest.

    - Dann kann jeder andere der dir hier helfen will die von mir aktualisierten Änderungen nutzen und hat hoffentlich 🤞 den gleichen Stand wie du zu Verfügung.


    Was meinst du Chris? Okay?

    📂 Download => Für die die sich das Repository nicht per "git clone" auschecken, hier der stehts aktuelle Download dazu 😎 .

    Viele Grüße

    Sven

  • Buttons klickbar machen

    • SOLVE-SMART
    • 25. Januar 2022 um 13:15

    Hi casi4712,

    abgesehen davon, dass ich absolut hinter den Ausführungen und Empfehlungen von BugFix stehe, möchte ich dich nochmal bitten deinen aktuellen und vollständigen Code-Stand zu posten. Auch deine Abhängigkeiten, bspw. "Services.au3" oder "Service.au3", je nach dem was du nun verwendest.

    Warum:
    Damit wir besser helfen können. Ich möchte mir nicht immer erst deinen vermeintlichen Code-Stand zusammensuchen müssen 😉 . Respekt an Moombas an dieser Stelle, der dies offensichtlich tut 😁 .

    Stelle bitte einfach alles bereit (die Abhängigkeiten einfach als Anhang) und dann bekommst du sicherlich noch mehr und zügige Hilfestellung. Danke.


    Viele Grüße

    Sven

  • Buttons klickbar machen

    • SOLVE-SMART
    • 24. Januar 2022 um 10:20

    Hi casi4712, hi BugFix,

    Zitat von BugFix

    Direkter Austausch ist nicht ohne Weiteres machbar. Aber warum überhaupt Batch? Erledige doch alles in AutoIt.


    Genau das hatte ich dich bereits im post #10 gefragt Chris.

    pasted-from-clipboard.png

    Desweiteren schreibst du:

    Zitat von casi4712

    Aber ich findes es schon angsteinflößend, dass man zig Zeilen Code benötigt um einen Dienststatus abzufragen und in eine Variable zu stecken, ich fand am Anfang ja PS schon kompliziert. Gibt es da wirklich keine kürzeren Ansätze?

    Die gibt es sehr wahrscheinlich, doch dazu solltest du dein Ziel erläutern.
    Denn ansonsten sehe ich die Konversation hier als ping-pong in gefühlter Endlosschleife 🙁 .

    Viele Grüße
    Sven

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™