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

Beiträge von Bitnugger

  • Background Bild und GUI Elemente

    • Bitnugger
    • 2. Oktober 2022 um 18:25
    Zitat von casi4712

    er bemeckert aber aus irgend einem Grunde eine angeblich fehlende Klammer,,

    Wie Oscar dir schon angeraten hat: Poste bitte lauffähige Beispiele!

    Andernfalls bürdest du den freiwilligen Helfern unnötige Arbeit auf, die wohl kaum einer leisten will. Dazu gehören importierte UDFs und sonstige benutzte Funktionen bzw. Variablen oder Daten.

    Folgendes fehlt:

    GUIBkImage.au3, Services.au3, GuiCtrlSetOnHover_UDF.au3, _fu1(), _fu2()

    und die hier verwendeten *.bmp...

    FileInstall("C:\Users\user\Pictures\scr09082022-084252.bmp", "C:\Windows\Temp\hg.bmp", 1)

  • Zeitrechner

    • Bitnugger
    • 1. Oktober 2022 um 18:07

    Danke Velted , dass du mir die Arbeit abgenommen hast. ;)

    Zitat von Velted

    Solche 'Komfortfunktionen' machen für mich allerdings nur Sinn, wenn auch bereits bei derEingabe geprüft wird, ob die Daten 'sinnvoll' sind (z.B. Pause-Beginn nach Arbeit-Beginn oder Pause-Ende nach Pause- Beginn oder Pause nicht länger als 10 Stunden oder ...).

    Genau... ich habe das in einem meiner größeren Projekte gelöst, indem ich die Tastatureingaben in einem Input mit einem Hook* abfange und nur dann zulasse, wenn sie korrekt sind. Zudem kann man bei mir die Zeiten auch via Mousewheel ($WM_MOUSEWHEEL) ändern. Das ist sehr bequem und Fehleingaben sind somit ausgeschlossen.

    *_WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, ...)

    Chris_pac

    Es macht übrigens wenig Sinn, Begin u. Ende der Pausenzeit/en manuell einzugeben, da diese von der Arbeitszeit abhängig sind und der Arbeitgeber verpflichtet ist, diese entsprechend einzuberechnen, unabhängig davon, ob du sie eingehalten hast, oder nicht.

    Zitat

    Bei einer Arbeitszeit von mehr als sechs bis zu neun Stunden muss die Pausenzeit mindestens 30 Minuten betragen. Bei mehr als neun Stunden Arbeitszeit sind 45 Minuten vorgeschrieben. Die Lage der Ruhepausen ist gesetzlich in § 4 Arbeitszeitgesetz - ArbZG nur rahmenmäßig vorgeschrieben.

    Code
    <= 6 Std.          = keine Pause
    >  6 Std. - 9 Std. = 30 min Pause
    >  9 Std.          = 45 min Pause

    Es gibt aber auch Sonderregelungen... z.B. wenn extrem schwierige/anstrengende Arbeiten (100% Erschwerniszulage) verrichtet werden... da ist/war es zumindest auf dem Bau so, dass nach 15 min Arbeit eine Pause von 15 min folgen muss/te, die in dem Fall aber als Arbeitszeit verbucht wird.

    Soll-Arbeitzeit: 07:48 ...so krumme Zeiten kenne ich nicht... 07:45, 07:30 und 07:15 wohl.

    Zitat von Chris_pac

    Es macht wirklich Spaß, AutoIT zu lernen!

    AutoIt!

    PS: Habe mom. leider wenig Freizeit...

  • Zeitrechner

    • Bitnugger
    • 29. September 2022 um 22:37

    @Kanashius - sehr schön... ich habe allerdings andere Ergebnisse.

    Zeitrechner_2.png

    AutoIt
    ;-- TIME_STAMP   2022-09-29 22:12:26
    
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ;~ #include <Array.au3>
    ;~ #include <Debug.au3>
    #include <Date.au3>
    
    Opt('MustDeclareVars', 1)
    
    Global $ankunftzeit, $pause_bgn_zeit, $pause_end_zeit
    
    #Region ### START Koda GUI section ### Form=c:\users\wkivag15\documents\zeitrechner.kxf
    Global $g_hGUI = GUICreate("Zeitrechner", 664, 413, 617, 296)
    GUISetFont(12, 400, 0, "DM Sans", $g_hGUI)
    GUICtrlSetTip(-1, "16")
    Global $idBtn_ankunft = GUICtrlCreateButton("Ankunft", 16, 24, 107, 29)
    Global $idBtn_pause_bgn = GUICtrlCreateButton("Pause Begin", 16, 64, 107, 29)
    Global $idBtn_pause_end = GUICtrlCreateButton("Pause Ende", 16, 104, 107, 29)
    Global $idInp_ankunft = GUICtrlCreateInput("08:00", 128, 24, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $idInp_pause_bgn = GUICtrlCreateInput("12:00", 128, 63, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $idInp_pause_end = GUICtrlCreateInput("12:30", 128, 103, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $idInp_laenge_der_pause = GUICtrlCreateInput("", 172, 208, 89, 29)
    Global $idLbl_laenge_pause = GUICtrlCreateLabel("Länge der Pause", 16, 208, 125, 25)
    Global $idLbl_feierabend = GUICtrlCreateLabel("Feierabend (inkl. Pause)", 250, 24, 188, 25)
    Global $idInp_feierabend = GUICtrlCreateInput("18:00", 435, 24, 89, 29)
    Global $idLbl_Label4 = GUICtrlCreateLabel("Überstunden heute", 14, 248, 146, 25)
    Global $idLbl_Label6 = GUICtrlCreateLabel("Soll-Arbeitzeit", 250, 64, 110, 25)
    Global $idInp_soll_zeit = GUICtrlCreateInput("07:45", 435, 64, 89, 29)
    Global $idLbl_Label7 = GUICtrlCreateLabel("Tatsächliche Arbeitzeit (ohne Pause)", 290, 208, 274, 25)
    Global $idLbl_Label8 = GUICtrlCreateLabel("Frühester Feierabend (inkl. Pause)", 290, 246, 263, 25)
    Global $idLbl_Label9 = GUICtrlCreateLabel("Spätester Feierabend (inkl. Pause)", 290, 286, 264, 25)
    Global $idLbl_Label10 = GUICtrlCreateLabel("Pause nach 6 Stunden", 290, 326, 267, 25)
    Global $idInp_ueberstunden_heute = GUICtrlCreateInput("", 172, 248, 89, 29)
    Global $idInp_pause_6std = GUICtrlCreateInput("", 556, 322, 89, 29)
    Global $idInp_spaet_zeit = GUICtrlCreateInput("", 556, 282, 89, 29)
    Global $idInp_frue_zeit = GUICtrlCreateInput("", 556, 242, 89, 29)
    Global $idInp_tats_zeit = GUICtrlCreateInput("", 556, 202, 89, 29)
    
    Global $idBtn_calculate = GUICtrlCreateButton ("Berechnen", 14, 326, 100, 50)
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $idBtn_ankunft
                $ankunftzeit = (_NowTime(4))
                GUICtrlSetData($idInp_ankunft, $ankunftzeit)
    
            Case $idBtn_pause_bgn
                $pause_bgn_zeit = (_NowTime(4))
                GUICtrlSetData($idInp_pause_bgn, $pause_bgn_zeit)
    
            Case $idBtn_pause_end
                $pause_end_zeit = (_NowTime(4))
                GUICtrlSetData($idInp_pause_end, $pause_end_zeit)
    ;~             _ComputeAll()
    
            Case $idBtn_calculate
                _ComputeAll()
    
        EndSwitch
    WEnd
    
    Func _ComputeAll()
        ConsoleWrite('_ComputeAll(' & _NowTime() & ')' & @CRLF)
        Local $sTime, $iTime, $iTime1, $iTime2, $iTime3, $iPause
    
    ;~     länge Pause
        $iTime1 = _GetMins($idInp_pause_bgn)  ; Minuten
        $iTime2 = _GetMins($idInp_pause_end)  ; Minuten
        $sTime = _SubTime($iTime2, $iTime1)   ; hh:nn
        $iPause = @extended
        GUICtrlSetData($idInp_laenge_der_pause, $sTime)
    
    ;~     Feierabend
    
    ;~     tats arbeitszeit
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins($idInp_feierabend)
        $sTime = _SubTime($iTime2 - $iPause, $iTime1)
        GUICtrlSetData($idInp_tats_zeit, $sTime)
    
    ;~     überstd heute
        $iTime1 = _GetMins($idInp_tats_zeit)
        $iTime2 = _GetMins($idInp_soll_zeit)
        $sTime = _SubTime($iTime1, $iTime2)
        $iTime = @extended
    ;~     If $iTime < 1 Then $sTime = '00:00'                          ; "00:00"
        If $iTime < 1 Then $sTime = '-' & $sTime ; "-02:15"
        GUICtrlSetData($idInp_ueberstunden_heute, $sTime)
    
    ;~     früh feierabend
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins($idInp_soll_zeit)
        $iTime3 = _GetMins($idInp_laenge_der_pause)
        $sTime = _SubTime($iTime3, $iTime1 + $iTime2)
        GUICtrlSetData($idInp_frue_zeit, $sTime)
    
    ;~     spä Feierabend
    ;~     Local    $max_arbeit_zeit = "10:00"
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins('10:00')
        $iTime3 = _GetMins($idInp_laenge_der_pause)
        $iTime = $iTime1 + $iTime2 + $iTime3
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_spaet_zeit, $sTime)
    
    ;~     pause nach 6 std
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins('06:00')
        $iTime = $iTime1 + $iTime2
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_pause_6std, $sTime)
    EndFunc   ;==>_ComputeAll
    
    Func _GetMins($idCtrl) ; idCtrl or string eg. "08:15"
        Local $aSplit = StringSplit(IsString($idCtrl) ? $idCtrl : GUICtrlRead($idCtrl), ':', 2)
        If UBound($aSplit) < 2 Then Exit 999
        Return $aSplit[0] * 60 + $aSplit[1] ; Minuten
    EndFunc
    
    ; $iTime1 - $iTime2 (in Minuten)
    Func _SubTime($iTime1, $iTime2)
        Local $_iTime = $iTime1 - $iTime2
        Local $_sTime = StringRight('0' & Int($_iTime / 60), 2) & ':' & StringRight('0' & Mod($_iTime, 60), 2)
        Return SetExtended($_iTime, $_sTime) ; hh:nn and @extended = Minuten
    EndFunc
    Alles anzeigen
  • Zeitrechner

    • Bitnugger
    • 27. September 2022 um 18:54
    Zitat von Chris_pac

    Und noch etwas: die Zeit wird auch in Dezimalzahlen berechnet. Pro Tag muss man 07,48 Stunden arbeiten oder 07,80 Stunden in Dezimalzahlen.

    Industrieminute – Wikipedia

    Zitat von Chris_pac

    So sieht das in Excel aus:

    Da hast du einen Schreibfehler drin: Pause nach 6 Stundnen

    Hier mal ein Ansatz:

    C
    ;-- TIME_STAMP   2022-09-27 18:51:20
    
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>
    
    Global $ankunftzeit, $pause_bgn_zeit, $pause_end_zeit
    
    #Region ### START Koda GUI section ### Form=c:\users\wkivag15\documents\zeitrechner.kxf
    Global $Form1_1 = GUICreate("Zeitrechner", 664, 413, 617, 296)
    GUISetFont(12, 400, 0, "DM Sans", $Form1_1)
    Global $ankunft_btn = GUICtrlCreateButton("Ankunft", 16, 24, 107, 29)
    Global $pause_bgn_btn = GUICtrlCreateButton("Pause Begin", 16, 64, 107, 29)
    Global $pause_end_btn = GUICtrlCreateButton("Pause Ende", 16, 104, 107, 29)
    Global $ankunft_inp = GUICtrlCreateInput("00:00", 128, 24, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $pause_bgn_inp = GUICtrlCreateInput("00:00", 128, 63, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $pause_end_inp = GUICtrlCreateInput("00:00", 128, 103, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $laenge_der_pause_inp = GUICtrlCreateInput("", 192, 168, 89, 29)
    Global $laenge_pause_lbl = GUICtrlCreateLabel("Länge der Pause", 16, 168, 125, 25)
    Global $feierabend_lbl = GUICtrlCreateLabel("Feierabend", 16, 208, 88, 25)
    GUICtrlSetTip(-1, "16")
    Global $Label3 = GUICtrlCreateLabel("Überstunden vorher", 14, 246, 151, 25)
    Global $Label4 = GUICtrlCreateLabel("Überstunden heute", 14, 286, 146, 25)
    Global $Label5 = GUICtrlCreateLabel("Überstunden gesamt", 14, 326, 159, 25)
    Global $Label6 = GUICtrlCreateLabel("Soll-Arbeitzeit", 374, 168, 110, 25)
    Global $Label7 = GUICtrlCreateLabel("Tatsächliche Arbeitzeit", 374, 208, 174, 25)
    Global $Label8 = GUICtrlCreateLabel("Frühester Feierabend", 374, 246, 163, 25)
    Global $Label9 = GUICtrlCreateLabel("Spätester Feierabend", 374, 286, 164, 25)
    Global $Label10 = GUICtrlCreateLabel("Pause nach 6 Stunden", 374, 326, 167, 25)
    Global $feierabend_inp = GUICtrlCreateInput("", 192, 208, 89, 29)
    Global $ueberstunden_inp = GUICtrlCreateInput("", 192, 246, 89, 29)
    Global $ueberstunden_heute_inp = GUICtrlCreateInput("", 192, 286, 89, 29)
    Global $ueberstunden_ges_inp = GUICtrlCreateInput("", 192, 326, 89, 29)
    Global $pause_6std_inp = GUICtrlCreateInput("", 556, 322, 89, 29)
    Global $spaet_zeit_inp = GUICtrlCreateInput("", 556, 282, 89, 29)
    Global $frue_zeit_inp = GUICtrlCreateInput("", 556, 242, 89, 29)
    Global $tats_zeit_inp = GUICtrlCreateInput("", 556, 202, 89, 29)
    Global $soll_zeit_inp = GUICtrlCreateInput("", 556, 162, 89, 29)
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $ankunft_btn
                $ankunftzeit = (_NowTime(4))
                GUICtrlSetData($ankunft_inp, $ankunftzeit)
                GUICtrlSetState($ankunft_inp, $GUI_DISABLE)
    
            Case $pause_bgn_btn
                $pause_bgn_zeit = (_NowTime(4))
                GUICtrlSetData($pause_bgn_inp, $pause_bgn_zeit)
                GUICtrlSetState($pause_bgn_inp, $GUI_DISABLE)
    
            Case $pause_end_btn
                $pause_end_zeit = (_NowTime(4))
                GUICtrlSetData($pause_end_inp, $pause_end_zeit)
                GUICtrlSetState($pause_end_inp, $GUI_DISABLE)
                _ComputeAll()
        EndSwitch
    WEnd
    
    Func _ComputeAll()
        ConsoleWrite('_ComputeAll()' & @CRLF)
    ;~     länge Pause
        Local $aSplit1 = StringSplit($pause_bgn_zeit, ':', 2)
        Local $aSplit2 = StringSplit($pause_end_zeit, ':', 2)
        Local $sStd = StringRight('0' & $aSplit2[0] - $aSplit1[0], 2)
        Local $sMin = StringRight('0' & $aSplit2[1] - $aSplit1[1], 2)
        GUICtrlSetData($laenge_der_pause_inp, $sStd & ':' & $sMin)
    
    ;~ $ankunftzeit, $pause_bgn_zeit, $pause_end_zeit
    
    ;~     Feierabend
    ;~     überstd vorher
    ;~     überstd heute
    ;~     überstd gesamt
    ;~
    ;~     soll arbeitszeit
    ;~     tats arbeitszeit
    ;~     früh feierabend
    ;~     spä Feierabend
    ;~     pause nach 6 std
    
    ;~     ...
    EndFunc   ;==>_ComputeAll
    Alles anzeigen
  • wNim - setFocus

    • Bitnugger
    • 23. September 2022 um 20:33
    Zitat von BugFix

    Ich will grundsätzlich nichts ausschließen und halte es deshalb für möglich, dass diese proceure in den Tiefen der Includes doch schon existiert

    Da finde ich jede Menge...

    setFocus.png

  • wNim - setFocus

    • Bitnugger
    • 23. September 2022 um 20:03

    Sehr schön... allerdings meckert VSCodium:

    "message": 'setFocus' is declared but not used [XDeclaredButNotUsed]

  • Windows Benutzeranmeldung über AutoIt

    • Bitnugger
    • 19. September 2022 um 17:17
    Zitat von Kanashius

    Du musst zum installieren vmtl. kurzzeitig unsignierte Treiber erlauben.

    Hm... "kurzzeitig" unsignierte Treiber erlauben wird wohl nicht reichen... denn soweit ich mich erinnere, werden Treiber (zumin. unter X64) nicht geladen, wenn sie nicht signiert sind.

    Dabei frage ich mich... wofür genau braucht man sowas (Benutzeranmeldung via AutoIt)?

  • Windows Benutzeranmeldung über AutoIt

    • Bitnugger
    • 19. September 2022 um 15:54
    Zitat von Moombas

    Meines Wissens aus sicherheitstechnischen Gründen nicht möglich.

    Richtig... selbe Frage war bereits im englischen Forum: https://www.autoitscript.com/forum/topic/19…ows-10-machine/

    Zitat von @JLogan3o13

    Microsoft does not allow automation of the username and password fields, or the CTRL+ALT+DEL action, for what I would think are obvious reasons. Autologon is the only approved method for doing what you're after.

    Microsoft erlaubt keine Automatisierung der Benutzernamen- und Kennwortfelder oder der Aktion STRG+ALT+ENTF aus offensichtlichen Gründen. Die automatische Anmeldung ist die einzige zugelassene Methode, um das zu tun, wonach Sie suchen.

    Evtl. ist es mit _WinAPI_Keybd_Event (Synthetisiert einen Tastendruck) möglich... ich werde es allerdings nicht testen. 8o

  • Schriftart und -größe bei einer Statusbar ändern

    • Bitnugger
    • 18. September 2022 um 18:49

    Sehr schön...

    Zitat von Oscar

    $g_iFontSize += $iWheel

    If $g_iFontSize < $iMinSize Then $g_iFontSize -= $iWheel

    If $g_iFontSize > $iMaxSize Then $g_iFontSize -= $iWheel

    Würde ich so machen:

    AutoIt
    $g_iFontSize += $iWheel
    If $g_iFontSize < $iMinSize Or $g_iFontSize > $iMaxSize Then $g_iFontSize -= $iWheel
  • Minimieren eines Fensters nicht möglich

    • Bitnugger
    • 18. September 2022 um 16:31
    Zitat von Greenhorn

    Wenn das auch nicht helfen sollte, dann vielleicht ein WinSetState ($dom, "", @SW_ENABLE) am Ende der Funktion Domizil.

    Am Ende der Funktion ist es zu spät... das muss vor...

    ControlFocus($dom, "", "[CLASS:TnetEdit]")

    ...und @SW_ENABLE macht nur Sinn, wenn zuvor @SW_DISABLE gesetzt wurde, was aber vermutlich nicht der Fall ist. Das lässt sich aber leicht mit WinGetState prüfen.

    Schadi : Anstatt Send solltest du - wann immer möglich - besser ControlSend bzw. ControlSetText verwenden, dann brauchst du auch keinen Fokus setzen.

    Zitat von Schadi

    Send("{DOWN}")

    Sleep(50)

    Send("{DOWN}")

    Sleep(50)

    Send("{DOWN}")

    Sleep(50)

    Send("{DOWN}")

    Sleep(50)

    Send("{DOWN}")

    Sleep(50)

    Send("{UP}")

    Sleep(100)

    Send("{Enter}")

    Sleep(200)

    Send("{Enter}")

    Sleep(100)

    Alles anzeigen

    Sowas macht man besser so:

    AutoIt
    _Send("{DOWN}", 5, 100)
    _Send("{UP}", 1, 100)
    _Send("{Enter}", 2, 200)
    
    Func _Send($sText, $iRepetitions = 1, $iPause = 0)
        For $i = 1 To $iRepetitions Step 1
            Send($sText) ; besser ControlSend (Keys) bzw. ControlSetText (Text) verwenden
            If $iPause Then Sleep($iPause)
        Next
    EndFunc
  • Suche Hilfe - unzulässige Zeichen bei Dateinamen ersetzen - mit "StringRegExp" für ANFÄNGER!

    • Bitnugger
    • 16. September 2022 um 23:00
    Zitat von Exit

    Und zwar bei "Altenate Data Sets"

    Das nennt sich "Alternate Data Streams (ADS)"

    NTFS und Alternate Data Streams (ADS)

    Habe dein Script ein wenig geändert...

    AutoIt: Test_2.au3
    #AutoIt3Wrapper_Change2CUI=y
    
    Local $path = 'm:\Temp'
    Local $file = $path & "\mytest.txt"
    Local $alternateDS = $file & ":alternateDS"
    ConsoleWrite("       $file: " & $file & @CRLF)
    ConsoleWrite('$alternateDS: ' & $alternateDS & @CRLF & @CRLF)
    FileWrite($file, "This is a normal text" & @CRLF & "This is line 2" & @CRLF & "This is line 3" & @CRLF)
    FileWrite($alternateDS, "This is an alternate dataset" & @CRLF & "This is line 5" & @CRLF & "This is line 6")
    Local $data = FileRead($alternateDS)
    ConsoleWrite('$data: ' & @CRLF & $data & @CRLF & @CRLF)
    RunWait(@ComSpec & " /c " & "dir /R mytest.txt & echo. & echo ^>type mytest.txt & echo. & type mytest.txt & echo. &pause", $path, @SW_SHOW)
    FileDelete($file)
    Alles anzeigen

    wenn es kompiliert (*.exe) gestartet wird, sieht die Ausgabe so aus:

    Test_2.exe.png

  • Minimieren eines Fensters nicht möglich

    • Bitnugger
    • 16. September 2022 um 17:28
    Zitat von Schadi

    Jetzt habe ich das Problem, dass wenn das Programm schon offen ist (wenn es neu gestartet werden muss funktioniert es) sich nachher nicht mehr minimieren lässt.

    Könnte daran liegen, weil bei Run kein show_flag mit angegeben wurde... denn @SW_HIDE ist Default.

    Zitat von Schadi

    RUN("\\srvwsgdz01\DomizilPlus\bin\DomizilNetzwerkStarter.exe -PROFIL:DomizilPlus -MANDANT:WSG")

    Ändere das mal so:

    RUN("\\srvwsgdz01\DomizilPlus\bin\DomizilNetzwerkStarter.exe -PROFIL:DomizilPlus -MANDANT:WSG", "", @SW_SHOW)

  • Programm Maussteuerung

    • Bitnugger
    • 15. September 2022 um 15:25
    Zitat von casi4712

    Dumme Frage noch mal, gibt es bei MouseMove eigentlich auch ne Aert HIDE Modus, also zum unsichtbar machen des Pfeils?

    Es geht wohl auch, wenn du MouseMove(274, 83, 10) zu MouseMove(274, 83, 0) änderst.

    MouseMove ( x, y [, speed = 10] )

    Parameters

    x The screen x coordinate to move the mouse to.

    y The screen y coordinate to move the mouse to.

    speed [optional] the speed to move the mouse in the range 1 (fastest) to 100 (slowest). A speed of 0 will move the mouse instantly. Default speed is 10.


    Zitat von MojoeB

    MouseMove(274, 83, 10)

    Bei MouseMove(274, 83, 10) kann man sich das , 10 sparen, denn das ist eh Default.

  • Suche Hilfe - unzulässige Zeichen bei Dateinamen ersetzen - mit "StringRegExp" für ANFÄNGER!

    • Bitnugger
    • 14. September 2022 um 16:16
    Zitat von AspirinJunkie

    Man kann auch direkt in RegEx escapen:

    Ja, danke, ganz vergessen, dass es auch so geht. ;)

  • Color - Output (ANSI Escape Sequenzen): Ursache gefunden - leider keine Lösung

    • Bitnugger
    • 14. September 2022 um 15:52

    Hier noch mal ein Nachtrag zu ansicon.exe... bzw. ein Script, das zeigt was es kann.

    Gun-Food : "ansi189.7z" kann ich hochladen, "ansi189.zip" allerdings nicht!!!

    Code
    ansi189.zip               169.221 Bytes (165 KB) <= funktioniert nicht!
    ansi189.7z                116.656 Bytes (114 KB) <= funktioniert!
    List_of_used_colors.png   149.578 Bytes (147 KB) <= funktioniert nicht!
    List_of_used_colors_2.png  84.278 Bytes ( 82 KB) <= funktioniert!

    Scheint an der Größe zu liegen... obwohl ja alles weit unter 15 MB ist...

    Vor Ausführung des Scripts:

    • "ansi189.7z" entpacken
    • ".\ANSICON\x64\ansicon.exe" bzw. ".\ANSICON\x86\ansicon.exe" ausführen (Installieren/Deinstallieren)
    • Pfad zu ".\ANSICON\ANSI Prompt Colours.txt" im Script anpassen ($g_sANSI_Prompt_Colours)

    Danach das Script ausführen...

    AutoIt
    #include <Array.au3>
    
    ; Pfad anpassen!
    Global Const $g_sANSI_Prompt_Colours = '.\ANSICON\ANSI Prompt Colours.txt'
    
    Global  $aRX = StringRegExp(FileRead($g_sANSI_Prompt_Colours), '(?m)(.+\$.+)', $STR_REGEXPARRAYGLOBALMATCH) ; ausfiltern, was SciTE anzeigen kann
    ;~ _ArrayDisplay($aRX, '$aRX')
    ConsoleWrite(_ArrayToString($aRX, @CRLF) & @CRLF & @CRLF)
    
    ;~ ConsoleWrite(FileRead('m:\ANSICON\ANSI Prompt Colours.txt') & @CRLF & @CRLF)
    Run(@ComSpec & ' /k Type "m:\ANSICON\ANSI Prompt Colours.txt"') ; alles anzeigen, was ansicon.exe kann - Fenstergröße darf nicht verändert werden!
    
    Global Const $ESC        = Chr(27)
    
    Global Const $RED        = $ESC & '[31m'
    Global Const $REDBOLD    = $ESC & '[31;1m'
    Global Const $GREEN      = $ESC & '[32m'
    Global Const $GREENBOLD  = $ESC & '[32;1m'
    Global Const $YELLOW     = $ESC & '[33m'
    Global Const $YELLOWBOLD = $ESC & '[33;1m'
    Global Const $BLUE       = $ESC & '[34m'
    Global Const $BLUEBOLD   = $ESC & '[34;1m'
    Global Const $PINK       = $ESC & '[35m'
    Global Const $PINKBOLD   = $ESC & '[35;1m'
    Global Const $CYAN       = $ESC & '[36m'
    Global Const $CYANBOLD   = $ESC & '[36;1m'
    Global Const $WHITE      = $ESC & '[37m'
    Global Const $WHITEBOLD  = $ESC & '[37;1m'
    Global Const $DEF        = $ESC & '[0m'
    
    ConsoleWrite($RED & 'List ' & $CYAN & 'of ' & $YELLOWBOLD & 'used ' & $BLUEBOLD & 'colors' & $PINKBOLD & '!' & $DEF & @CRLF)
    
    Global $aColor[][2] = [[$RED,'RED'],[$REDBOLD,'REDBOLD'],[$GREEN,'GREEN'],[$GREENBOLD,'GREENBOLD'],[$YELLOW,'YELLOW'],[$YELLOWBOLD,'YELLOWBOLD'], _
    [$BLUE,'BLUE'],[$BLUEBOLD,'BLUEBOLD'],[$PINK,'PINK'],[$PINKBOLD,'PINKBOLD'],[$CYAN,'CYAN'],[$CYANBOLD,'CYANBOLD'],[$WHITE,'WHITE'],[$WHITEBOLD,'WHITEBOLD']]
    
    For $i = 0 To Ubound($aColor) -1
        ConsoleWrite($aColor[$i][0] & $aColor[$i][1] & $DEF & @CRLF)
    Next
    Alles anzeigen

    List_of_used_colors_2.png

    Dateien

    ansi189.7z 116,66 kB – 342 Downloads
  • Suche Hilfe - unzulässige Zeichen bei Dateinamen ersetzen - mit "StringRegExp" für ANFÄNGER!

    • Bitnugger
    • 14. September 2022 um 12:46
    Zitat von Andy

    Removes illegal characters from a file or directory name.

    Der Funktionsname "PathCleanupSpec" ist ebenfalls sehr irreführend, denn es wird ein Verzeichnis- oder Dateiname erwartet, kein kompletter Pfad!

    Hier mal eine Funktion mit StringRegExpReplace:

    water - mit dem Pattern ist es etwas komplizierter...

    AutoIt
    _CleanupStr('T*este /m:ich')
    _CleanupStr(' $Test$~"#%&*:;<>?!/\{|}^°²³[]''$Test$ ')
    _CleanupStr(@ScriptFullPath)
    
    Func _CleanupStr($_sString)
        Local Static $sIllegalCharacters = '~"#%&*:;<>?!/\{|}^°²³[]'''
        Local Static $sPattern, $sReplace = ' '
        If $sPattern = '' Then
            $sPattern = '[\Q' & $sIllegalCharacters & '\E]' ; AspirinJunkie
            ConsoleWrite('> $sIllegalCharacters ...................................: "' & $sIllegalCharacters & '"' & @CRLF)
            ConsoleWrite('> $sPattern .............................................: "' & $sPattern & '"' & @CRLF)
            ConsoleWrite('> $sReplace .............................................: "' & $sReplace & '"' & @CRLF & @CRLF)
        EndIf
        $sCleanupStr = StringStripWS(StringRegExpReplace($_sString, $sPattern, $sReplace), 3) ; $STR_STRIPLEADING + $STR_STRIPTRAILING
        ConsoleWrite('> StringRegExpReplace($_sString, $sPattern, $sReplace) ..: "' & $sCleanupStr & '"' & @CRLF)
        Return $sCleanupStr
    EndFunc
    Alles anzeigen
  • _ bei Funktionen

    • Bitnugger
    • 10. September 2022 um 18:42
    Zitat von Velted

    der führende Unterstrich wurde als Mermal für Funktionen in den UDF-Skripten vereinbart.

    Richtig... hier gibt es mehr Infos dazu: https://www.autoitscript.com/wiki/UDF-spec

    und hier: https://www.autoitscript.com/wiki/User_Defined_Functions

  • Frage zur Screenshotfunktion

    • Bitnugger
    • 10. September 2022 um 17:58
    Zitat von casi4712

    Kommt jedenfalls ein Fehler: EndFunc without Func

    Ja logisch... denn "Start Func Break()" ist eben nicht dasselbe wie "Func Break()" - und das genau wird aber benötigt/erwartet!

    Ergo: Mach einfach das "Start " vor "Func Break()" weg und alles ist easy... und mit Unterstrich hat das nichts zu tun.

  • _GUIImageList_AddIcon: Pfad kann nur relativ angegeben werden

    • Bitnugger
    • 9. September 2022 um 19:07
    Zitat von Moombas

    Zum 1.: Prüf mal ob dein absoluter Pfad wirklich korrekt ist und das gleiche ausgibt wie @SystemDir & "\imageres.dll"

    Zum 2.: Dann machst du halt eine @OS basierte definition des Speicherortes.

    Dateien und auch Dll's, die vom System bereitgestellt werden, liegen ja üblicherweise im Suchpfad (%Path%)... dann gebe ich keinen Pfad an und brauche mir somit keine Gedanken darüber zu machen, wo sie tatsächlich liegt, egal ob x86 oder x64.

  • Notepad Fenster wechseln per Button

    • Bitnugger
    • 9. September 2022 um 18:48
    Zitat von 32vroni

    Mal unabhängig von AutoIT:

    AutoIt... nicht AutoIT!

    Zitat von 32vroni

    Möglicherweise gefällt Dir auch Notepad++ als Alternative zu Notepad recht gut, da hier u.a. auch mit mehreren Fenster gearbeitet werden kann.

    Mit mehreren Fenstern geht mit NotePad auch... Notepad++ kann mehrere Dateien aber auch in Tabs anzeigen. was NotePad nicht kann.

    Notepad im Vergleich zu Notepad++ ist so, als würde man einen Traby mit einem Rolls-Royce vergleichen... NotePad hat aber dennoch eine Lebensberechtigung, weil es in kritischen Fällen oftmals einen brauchbaren Hinweis darauf liefert, wo der Schuh drückt.

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™