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

Beiträge von Schnuffel

  • Code Kata - Galgenraten

    • Schnuffel
    • 6. Februar 2024 um 14:55

    da wir nicht an der Uni sind, würde ich meinen Versuch nochmal korrigiert abgeben wollen. Ich hatte das mit dem vollen Suchbegriff vergessen. ^^

    wenn diese Version nicht mehr in die Wertung geht alles gut.

    Spoiler anzeigen
    AutoIt
    #include "Word-list.au3"
    Global $InputBox, $Platzhalter, $nTreffer, $nCountFound, $sSuchwort, $aWortliste = _WordList()
    Global $aWortVorgabe = StringSplit($aWortliste[Random(1, UBound($aWortliste)-1, 1)], '')
    Global $aWortSuche = $aWortVorgabe
    For $i = 1 To $aWortSuche[0]
    	$aWortSuche[$i] = "_"
    	$Platzhalter &= " _"
    	$sSuchwort &= $aWortVorgabe[$i]
    Next
    $nCount = $aWortSuche[0]
    ConsoleWrite('' & _
    		"+---------------+" & @CRLF & _
    		"|--GALGENRATEN--|" & @CRLF & _
    		"+---------------+" & @CRLF & _
    		"Errate ein Wort mit " & $aWortVorgabe[0] & " Buchstaben" & $Platzhalter &  " , aus der Kategorie Software Entwicklung." & @CRLF & _
    		"Du hast " & $aWortVorgabe[0] & " Versuche, jeder falsche Buchstabe reduziert deine Versuche" & @CRLF)
    
    While 1
    	$InputBox = InputBox('GALGENRATEN', 'Gib einen Buchstaben oder ein Wort ein.')
    	If @error > 0 Then
    		ConsoleWrite("Du hast das Spiel abgebrochen!" & @CRLF)
    		Exit
    	EndIf
    	$Platzhalter = ""
    	If StringLen($InputBox) = 1 Then
    		$nTreffer = 0
    		For $i = 1 To $aWortSuche[0]
    			If $InputBox = $aWortVorgabe[$i] Then
    				$nTreffer = 1
    				$nCountFound += 1
    				$aWortSuche[$i] = $InputBox
    			EndIf
    		Next
    		If $nTreffer = 0 Then 	$nCount -= 1
    		If $nCount = 0 Then
    			ConsoleWrite('Verloren! Das gesuchte Wort war "' & $sSuchwort & '"' & @CRLF)
    			Exit
    		Else
    			For $j = 1 To $aWortSuche[0]
    				$Platzhalter &= " " & $aWortSuche[$j]
    			Next
    			ConsoleWrite("Wort:" & $Platzhalter & " (" & $nCount & " Versuche noch)" & @CRLF)
    		EndIf
    		If $aWortSuche[0] = $nCountFound Then
    			ConsoleWrite("Gewonnen! " & $nCount & " Versuche übrig, gut gemacht." & @CRLF)
    			Exit
    		EndIf
    	EndIf
    	If StringLen($InputBox) = $aWortSuche[0] Then
    		If $InputBox = $sSuchwort Then
    			For $j = 1 To $aWortVorgabe[0]
    				$Platzhalter &= " " & $aWortVorgabe[$j]
    			Next
    			ConsoleWrite("Wort:" & $Platzhalter & " (" & $nCount & " Versuche noch)" & @CRLF)
    			ConsoleWrite("Gewonnen! " & $nCount & " Versuche übrig, gut gemacht." & @CRLF)
    			Exit
    		EndIf
    	EndIf
    WEnd
    Alles anzeigen

    Ich stelle fest, dass ich eher fahrig bin. Jetzt hab ich umgestellt auf Sven seine 0-based Wortliste und den UBound vergessen.

    peinlich, peinlich

  • Code Kata - Galgenraten

    • Schnuffel
    • 6. Februar 2024 um 13:52

    upps, ja danke hab ich nicht dran gedacht.

    Danke

  • Code Kata - Galgenraten

    • Schnuffel
    • 6. Februar 2024 um 13:26

    so hier mein kurzer Ansatz. Hab Online-Schulung und es immer nebenbei gemacht. Zeitansatz kann ich nicht sagen ^^

    Spoiler anzeigen
    AutoIt
    Global $InputBox, $Platzhalter, $nTreffer, $nCountFound, $aWortliste = _WordList()
    Global $aWortVorgabe = StringSplit($aWortliste[Random(1, $aWortliste[0], 1)], '')
    Global $aWortSuche = $aWortVorgabe
    Global $sSuchwort
    For $i = 1 To $aWortSuche[0]
    	$aWortSuche[$i] = "_"
    	$Platzhalter &= " _"
    	$sSuchwort &= $aWortVorgabe[$i]
    Next
    $nCount = $aWortSuche[0]
    ConsoleWrite('' & _
    		"+---------------+" & @CRLF & _
    		"|--GALGENRATEN--|" & @CRLF & _
    		"+---------------+" & @CRLF & _
    		"Errate ein Wort mit " & $aWortVorgabe[0] & " Buchstaben" & $Platzhalter & " , aus der Kategorie Software Entwicklung." & @CRLF & _
    		"Du hast " & $aWortVorgabe[0] & " Versuche, jeder falsche Buchstabe reduziert deine Versuche" & @CRLF)
    
    While 1
    	$InputBox = InputBox('GALGENRATEN', 'Gib einen Buchstaben oder ein Wort ein.')
    	If @error > 0 Then
    		ConsoleWrite("Du hast das Spiel abgebrochen!" & @CRLF)
    		Exit
    	EndIf
    	If StringLen($InputBox) = 1 Then
    		$Platzhalter = ""
    		$nTreffer = 0
    		For $i = 1 To $aWortSuche[0]
    			If $InputBox = $aWortVorgabe[$i] Then
    				$nTreffer = 1
    				$nCountFound += 1
    				$aWortSuche[$i] = $InputBox
    			EndIf
    		Next
    		If $nTreffer = 0 Then $nCount -= 1
    		If $nCount = 0 Then
    			ConsoleWrite('Verloren! Das gesuchte Wort war "' & $sSuchwort & '"' & @CRLF)
    			Exit
    		Else
    			For $j = 1 To $aWortSuche[0]
    				$Platzhalter &= " " & $aWortSuche[$j]
    			Next
    			ConsoleWrite("Wort:" & $Platzhalter & " (" & $nCount & " Versuche noch)" & @CRLF)
    		EndIf
    		If $aWortSuche[0] = $nCountFound Then
    			ConsoleWrite("Gewonnen! " & $nCount & " Versuche übrig, gut gemacht." & @CRLF)
    			Exit
    		EndIf
    	EndIf
    WEnd
    Exit
    
    Func _WordList()
    	Local $sList = _
    			'autoit|' & _
    			'c#|' & _
    			'go|' & _
    			'java|' & _
    			'javascript|' & _
    			'matlab|' & _
    			'php|' & _
    			'python|' & _
    			'ruby|' & _
    			'sql'
    	Return StringSplit($sList, '|')
    EndFunc
    Alles anzeigen
  • Welches Event bei Win11 Fenster teilen?

    • Schnuffel
    • 6. Februar 2024 um 10:54

    versuch mal die hook.dll von LazyDalooza: https://www.autoitscript.com/forum/topic/75…&comment=582620

    hier noch der Download der dll: https://www.autoitscript.com/forum/topic/60…&comment=458286

    Du kannst m.E. nach alle WM_ Events aus der Windows_Constants.au3 einbinden und an die dll schicken.

  • Welches Event bei Win11 Fenster teilen?

    • Schnuffel
    • 6. Februar 2024 um 10:30

    hmm, ja war mein Denkfehler.
    Natürlich reagiert der Hook nur auf das Scite Fenster aus dem das Script gestartet wurde.

    Andernfalls muss der Hook ja auf BS-Ebene "installiert" werden.

    Also entweder machst du einen "alternativ-Loader" á la SciTE-GIT für SciTE. Dann haste auch den Hook,

    oder du lebst mit diesem "Makel".

    Ich kann damit leben ;)

  • Welches Event bei Win11 Fenster teilen?

    • Schnuffel
    • 6. Februar 2024 um 09:34

    teste mal, ob damit dein Event mit abgefangen wird ;)

    ist nicht von mir (Danyfirex) : https://www.autoitscript.com/forum/topic/18…comment=1321545

    ich hab nur alle Events eingefügt zum Testen. Der Start von Notepad ist nur als Beispiel gedacht. Der Hook reagiert auch auf Scite ;)

    AutoIt
    #include <WinAPIProc.au3>
    #include <WinAPI.au3>
    #include <WinAPISys.au3>
    #include <Array.au3>
    #include <GUIConstants.au3>
    #include <APISysConstants.au3>
    
    
    Global $hGUI = GUICreate("GUI")
    
    GUISetState(@SW_SHOW, $hGUI)
    
    GUIRegisterMsg(_WinAPI_RegisterWindowMessage('SHELLHOOK'), 'WM_SHELLHOOK')
    _WinAPI_RegisterShellHookWindow($hGUI)
    
    
    
    Run("notepad.exe")
    
    Local $nMsg=0
    While 1
        $nMsg = GUIGetMsg()
        Select
            Case $nMsg = $GUI_EVENT_CLOSE
                ExitLoop
        EndSelect
    
    WEnd
    
    _WinAPI_DeregisterShellHookWindow($hGUI)
    Exit
    
    Func WM_SHELLHOOK($hWnd, $iMsg, $wParam, $lParam)
        #forceref $iMsg
        Switch $wParam
            Case $HSHELL_WINDOWDESTROYED
                ConsoleWrite('$HSHELL_WINDOWDESTROYED: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _ ; This will be -1.
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _ ; This will be empty.
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
            Case $HSHELL_WINDOWCREATED
                ConsoleWrite('$HSHELL_WINDOWCREATED: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
            Case $HSHELL_ACTIVATESHELLWINDOW
                ConsoleWrite('$HSHELL_ACTIVATESHELLWINDOW: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
            Case $HSHELL_WINDOWACTIVATED
                ConsoleWrite('$HSHELL_WINDOWACTIVATED: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
            Case $HSHELL_GETMINRECT
                ConsoleWrite('$HSHELL_GETMINRECT: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
            Case $HSHELL_REDRAW
                ConsoleWrite('$HSHELL_REDRAW: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
            Case $HSHELL_TASKMAN
                ConsoleWrite('$HSHELL_TASKMAN: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_LANGUAGE
                ConsoleWrite('$HSHELL_LANGUAGE: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_SYSMENU
                ConsoleWrite('$HSHELL_SYSMENU: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_ENDTASK
                ConsoleWrite('$HSHELL_ENDTASK: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_ACCESSIBILITYSTATE
                ConsoleWrite('$HSHELL_ACCESSIBILITYSTATE: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_APPCOMMAND
                ConsoleWrite('$HSHELL_APPCOMMAND: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    		Case $HSHELL_WINDOWREPLACED
                ConsoleWrite('$HSHELL_WINDOWREPLACED: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_WINDOWREPLACING
                ConsoleWrite('$HSHELL_WINDOWREPLACING: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_RUDEAPPACTIVATED
                ConsoleWrite('$HSHELL_RUDEAPPACTIVATED: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
    					        Case $HSHELL_FLASH
                ConsoleWrite('$HSHELL_FLASH: ' & @CRLF & _
                        @TAB & 'PID: ' & WinGetProcess($lParam) & @CRLF & _
                        @TAB & 'ClassName: ' & _WinAPI_GetClassName($lParam) & @CRLF & _
                        @TAB & 'hWnd: ' & $lParam & @CRLF) ; This will be the handle of the window closed.
        EndSwitch
    EndFunc   ;==>WM_SHELLHOOK
    Alles anzeigen
  • Welches Event bei Win11 Fenster teilen?

    • Schnuffel
    • 5. Februar 2024 um 21:05

    vll hilft dieser beitrag von guiness https://www.autoitscript.com/forum/topic/15…napi-functions/

  • Welches Event bei Win11 Fenster teilen?

    • Schnuffel
    • 5. Februar 2024 um 20:52

    vielleicht kann man den Redraw des Scite Fenster auch hooken😁

  • Problem mit dem Edit-Control

    • Schnuffel
    • 5. Februar 2024 um 18:38

    das waren nur meine 50cent zu dem Thema.
    Ich möchte anderen nicht die Befähigung nehmen es besser zu wissen.

  • Problem mit dem Edit-Control

    • Schnuffel
    • 5. Februar 2024 um 18:12

    PS: AdLibRegister hat einen Default von 250ms.
    Damit erzeugt man im Besten Fall auch nur eine Pause, die das Control braucht um real deaktiviert zu sein ;)

  • Problem mit dem Edit-Control

    • Schnuffel
    • 5. Februar 2024 um 18:06

    ich vermute, nur weil das Control innerhalb von AutoIt das flag "DISABLED" erhält, ist der Befehl dazu im Windows noch lange nicht durch.

    Ob das jetzt ein WinAPI Aufruf oder ein DLL-Call ist kann ich nicht sagen, aber der benötigt sicher auch seine Zeit um "zu wirken".

    Das Verhalten, dass man den "realen" Status mit GuiCtrlGetStatus nicht auslesen kann, sondern immer nur den, den Autoit intern kennt,
    mag an der "Wrapper-Architektur" liegen. Da werden die Befehle erstmal an den Wrapper von Autoit geschickt, der wiederrum schickt dass dann via DllCall an Windows und das setzt den Befehl dann um. Für AutoIt ist das nach 1 ms erledigt, aber für Windows dauert der Prozess einfach etwas länger.

    Ich finde in AutoIt kann man solche "Probleme" ganz gut umschiffen, indem man in seiner grafischen Architektur darauf achtet, dass COntrols sich nicht überlappen. Das gab schon von je her Probleme. Ich denke dass das auch aufgrund der Verzögerungen in der Abarbeitung begründet liegt. ;)

  • Community Projekt: Teil 3 - Onboarding, Erklärvideos (ggf. Videocalls)

    • Schnuffel
    • 5. Februar 2024 um 10:50

    ich verwende GitHub Desktop https://desktop.github.com/

  • Gruppenmitgliedschaft ermitteln

    • Schnuffel
    • 4. Februar 2024 um 12:21

    ich spiele gerade ein wenig mit WMIC / WMI herum und da passt das ja ganz gut rein ...

    versuch mal das:

    AutoIt
    #AutoIt3Wrapper_UseX64=y
    #include <Array.au3>
    
    Opt("MustDeclareVars", 1)
    
    
    Local $aWMI = _GetWMIClass("Win32_GroupUser")
    _ArrayDisplay($aWMI)
    
    
    Func _GetWMIClass($Class)
        Local $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
        Local $colItems = $objWMIService.ExecQuery('SELECT * FROM ' & $Class)
        If Not IsObj($colItems) Then Return SetError(1) ; "Not an object"
        If Not $colItems.count Then Return SetError(2) ; "Not found"
        Local $aWMI[$colItems.ItemIndex(0).Properties_.count][$colItems.count + 1], $iCount = 0, $nCount = 1
        For $oProperty In $colItems.ItemIndex(0).Properties_
            $aWMI[$iCount][0] = $oProperty.name
            $iCount += 1
        Next
        For $oItem In $colItems
            $iCount = 0
            For $oProperty In $oItem.Properties_
                $aWMI[$iCount][$nCount] = $oProperty.Value
                $iCount += 1
            Next
            $nCount += 1
        Next
        $aWMI[0][0] = UBound($aWMI) - 1
        Return $aWMI
    EndFunc   ;==>_GetWMIClass
    Alles anzeigen

    Die Ausgabe lässt sich ja anpassen ^^

  • Komplette GUI als "Button"

    • Schnuffel
    • 4. Februar 2024 um 10:41

    hier noch ein Beispiel in einfacher Form als Alternative.

    AutoIt
    Global $hGUI = GUICreate('',500,400,-1,-1)
    Global $Button1 = GUICtrlCreateButton('TestButton 1', 10,10,300,20)
    GUICtrlSetState(-1, 32)
    Global $Button2 = GUICtrlCreateButton('TestButton 2', 10,100,300,20)
    GUICtrlSetState(-1, 32)
    Global $Button3 = GUICtrlCreateButton('TestButton 3', 10,200,300,20)
    GUICtrlSetState(-1, 32)
    Global $Label = GUICtrlCreateLabel('', 0,0, 500,400,Default, 0x00000008)
    GUICtrlSetBkColor(-1, -2)
    Global $msg
    
    GUISetState()
    
    While 1
    	$msg = GUIGetMsg()
    	Switch $msg
    		Case -3
    			Exit
    		Case $Label
    			GUICtrlSetState($Button1, 16)
    			GUICtrlSetState($Button2, 16)
    			GUICtrlSetState($Button3, 16)
    			GUICtrlSetState($Label, 32)
    		Case $Button1
    			GUICtrlSetState($Label, 16)
    			GUICtrlSetState($Button1, 32)
    			GUICtrlSetState($Button2, 32)
    			GUICtrlSetState($Button3, 32)
    		Case $Button2
    			GUICtrlSetState($Label, 16)
    			GUICtrlSetState($Button1, 32)
    			GUICtrlSetState($Button2, 32)
    			GUICtrlSetState($Button3, 32)
    		Case $Button3
    			GUICtrlSetState($Label, 16)
    			GUICtrlSetState($Button1, 32)
    			GUICtrlSetState($Button2, 32)
    			GUICtrlSetState($Button3, 32)
    	EndSwitch
    WEnd
    Alles anzeigen

    Bei Alina werden die Controls der Button aber jedesmal neu erstellt. Das ist nicht unbedingt ideal. ;)

    Das kann man sicher auch in eine Funktion packen, wie Alina das schon gezeigt hat, wenn es mehrere Buttons sind.

    Da bietet sich dann auch an, die Buttons alle hintereinander zu erstellen.
    Dann kann man die auch in einer For $i = $Button1 To $Buttonx ...
    durchlaufen lassen

    hier noch eine Alternative für viele Buttons:

    AutoIt
    Global $hGUI = GUICreate('',500,400,-1,-1)
    Global $aButton[4] ; Anzahl der Button
    $aButton[1] = GUICtrlCreateButton('TestButton 1', 10,10,300,20)
    GUICtrlSetState(-1, 32)
    $aButton[2] = GUICtrlCreateButton('TestButton 2', 10,100,300,20)
    GUICtrlSetState(-1, 32)
    $aButton[3] = GUICtrlCreateButton('TestButton 3', 10,200,300,20)
    GUICtrlSetState(-1, 32)
    Global $Label = GUICtrlCreateLabel('', 0,0, 500,400,Default, 0x00000008)
    GUICtrlSetBkColor(-1, -2)
    Global $msg
    
    GUISetState()
    
    While 1
    	$msg = GUIGetMsg()
    	Switch $msg
    		Case -3
    			Exit
    		Case $Label
    			_Button_Show()
    		Case $aButton[1]
    			_Button_Hide()
    		Case $aButton[2]
    			_Button_Hide()
    		Case $aButton[3]
    			_Button_Hide()
    	EndSwitch
    WEnd
    
    Func _Button_Show()
    	For $i = 1 To UBound($aButton)-1
    		GUICtrlSetState($aButton[$i], 16)
    	Next
    	GUICtrlSetState($Label, 32)
    EndFunc
    
    Func _Button_Hide()
    	For $i = 1 To UBound($aButton)-1
    		GUICtrlSetState($aButton[$i], 32)
    	Next
    	GUICtrlSetState($Label, 16)
    EndFunc
    Alles anzeigen
  • Komplette GUI als "Button"

    • Schnuffel
    • 4. Februar 2024 um 08:41

    ich würde in Größe der Gui ein transparentes Label erstellen das ontop steht. Mit einem klick wird das label befeuert und du kannst es deaktivieren und die buttons anzeigen. wenn du auf einen button klickst aktivierst du das label wieder und setzt die button auf hide

  • Community Projekt: Teil 1 - Interesse an einem gemeinsamen größeren (Software)Projekt?

    • Schnuffel
    • 2. Februar 2024 um 17:24

    noch ein Wunsch:

    ich bastle zur Zeit ein wenig an der Idee, Software im Internet nach seinem aktuellen Versionsstand zu durchforsten.

    Diesen speichere ich (bisher ca. 40) in einer mySQL DB ab und dachte mir, dass es ein netter Service ist,
    wenn User sich in einer Mailingliste eintragen und bei Versionsänderung zu Ihrer gewünschten Software benachrichtigt werden.
    Ob das auch gegen Spenden für das Forum möglich ist kann ich nicht sagen. Für Admins wie mich hat es sicher einen Mehrwert nicht ständig selber nach Updates zu suchen.

    Hintergrund: Ich arbeite in einer Umgebung, in der direkte Kommunikation von Software ins Internet unterbunden ist.

    Sozusagen halb offline hinter einem sehr rigorosen Proxy.

    Daher kann mir eine Software selbst, egal mit welchem Updater sie daher kommt, nicht mitteilen, dass es eine neue Version gibt.
    In solchen Umgebungen ist der "fast" Einzige Weg rein eine E-Mail mit eben dieser Information.
    Ich denke es gibt einige da draußen, die unter ähnlichen Umständen arbeiten und froh über eine E-mail Benachrichtigung wären, um zeitnah aktuell zu bleiben.

  • Community Projekt: Teil 1 - Interesse an einem gemeinsamen größeren (Software)Projekt?

    • Schnuffel
    • 2. Februar 2024 um 16:49

    ich arbeite fast ausschließlich im AD Umfeld und da gibt es reichlich Themen,
    die danach schreien in AutoIt umgesetzt zu werden.
    Dinge die ich in meinem Umfeld vermisse und die möglichst kostenlos sind (ohne zu wissen, ob es schon Alternativen gibt)
    Ähnlich dem Ansatz, Robocopy mit einer GUI zu versehen, ....

    - GUI für WDS (Nutzung der wdsutil)
    - GUI für DHCP mit erweitertem Funktionsumfang
    - GUI oder Funktionssammlung für diverse DOS Kommandos, die in Vergessenheit geraten sind
    - Funktionssammlung für Powershell Kommandos (Powershell selbst finde ich furchtbar und die ISE liefert kein Umgebungsverhalten)

    und ich wiederhole gern meinen Wunsch nach einer gesamtheitlichen Lösung der "Server-Client Administration"
    inkl. Deployment, Patch-Management, Asset-Management für Windows Umgebungen

    Ob da dann auch Tools zur vereinfachten RDP Nutzung á la mRemoteNG und Co. mit drin sind oder sogar Überwachungen auf Servern à la Icinga und Co.
    wären dann Erweiterungsmodule für ambitionierte AutoIt'ler ^^

    Die Liste meiner Wünsche ist da "fast" endlos. :rofl:

    Aber ich beteilige mich auch gerne an jedem anderen Projekt.
    Ich denke nur, dass da für jeden was dabei ist, wenn man die Aufgaben ordentlich verteilt.
    Da steckt TCP/IP drin, da steckt GUI drin, da steckt WMI und Powershell mit drin, da steckt die Nutzung vieler Windows Bordmittel oder deren Abstrahierung mit drin,
    die sich wunderbar auf Einzelne oder Gruppen aufteilen lassen.

    Da muss man dann auch nicht grundlegend die Funktionsübergaben diskutieren, sondern jedes Entwickler-Teil-Team erstellt seinen Bereich.
    Wenn alpha, beta oder fertig, je nachdem wird dass dann implementiert.
    Wie bei Linus Torvalds muss einer halt die Sache überblicken und die Teile zusammenfügen ^^

    Und ja, mir ist ein SCCM und andere Derivate bekannt. Aber ich finde dass die einfach zu teuer sind ^^

  • Gruppenmitgliedschaft ermitteln

    • Schnuffel
    • 2. Februar 2024 um 16:35

    das schreit ja schon wieder nach einem Projekt ^^

  • Community Projekt: Teil 1 - Interesse an einem gemeinsamen größeren (Software)Projekt?

    • Schnuffel
    • 1. Februar 2024 um 11:17

    für die Remote Geschichte gibt es aber bereits Ansätze:

    Client / Server Program Watcher
    I need to figure out the best way to monitor (watch) a specific program from another computer. I don't want to display the entire computer via pcAnywhere type…
    www.autoitscript.com
    Admin Tools (Remote client control) Bypasing firewall
    Update: GUI Interface. Bugs: search not working. Warning Dont run user_client.exe it or I will have aces to your pc. It is my mistake i have removed it from…
    www.autoitscript.com
    Remote Server 1.3
    Well I was stilling down one day and said, DAMN! AutoIt can control peoples computers really easy without them knowing. Well what if I made a remote control…
    www.autoitscript.com

    da ist bestimmt was dabei, dass man "umbauen" und aktuell nutzen kann

  • Inidatei durchsuchen nach Wert

    • Schnuffel
    • 31. Januar 2024 um 21:07

    mich hat der RegEx nicht in Ruhe gelassen.

    Daher habe ich mir das jetzt 2 Std. angesehen. Da wird man ja blöde... ^^
    Da der RegEx von BugFix bei mir nicht funktionierte und ich diese Begrenzung auf "2. Parameter" nicht akzeptieren wollte hier meine finale Lösung.

    AutoIt
    $sektion = StringRegExp(FileRead($pathINI), '(?s)\N*.*(\[(.*)\]\N*.*'&$sPersNr&')', 1)
    ConsoleWrite($sektion[1] & @CRLF)

    Wenn die $persnr gefunden wurde, wird "im Prinzip" rückwärts der Suchstring erweitert bis zum nächsten "[*]". Dieses wird als Gruppe "Param1" ausgegeben

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™