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

Beiträge von sccssf

  • Turnier Timer

    • sccssf
    • 20. Februar 2019 um 16:55

    So habe an meinen Code etwas rum geschrieben.

    Aktuelle fehlt noch:

    - Einstellmenü
    - verschiedene Sound
    - Pause Timer einstellen (angefangen noch nicht beendet)
    - Pause läuft nach Spielzeit
    - Balken für Pause (vorbereitet)

    Code
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=prog.ico
    #AutoIt3Wrapper_Outfile=Spielzeit-Timer.exe
    #AutoIt3Wrapper_Res_Description=Spielzeit-Timer
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=Oscar (www.autoit.de)/geändert SCCSSF
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    #Region Includes
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Sound.au3>
    #include <StaticConstants.au3>
    #include <Timers.au3>
    #include <WinAPI.au3>
    #include <WinAPIGdi.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Misc.au3>
    #include '_ProgressEx.au3'
    #include '_DateiEx.au3'
    #EndRegion Includes
    
    #Region single
    If _Singleton("Timer", 1) = 0 Then
        Exit
    EndIf
    #EndRegion
    
    #Region Optionen
    Opt('MustDeclareVars', 1)
    Opt('GUIOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Opt('GUIOnEventMode', 1)
    #EndRegion Optionen
    
    _GDIPlus_Startup()
    
    #Region Konstanten deklarieren
    Global Const $sAppTitle = 'Spielzeit-Timer'
    Global Const $sAppVersion = '1.0.0.0'
    Global Const $sAppDate = '20.02.2019'
    Global Const $sAppAuthor = 'Oscar (www.autoit.de) / SCCCSF'
    Global Const $sAppDir = @AppDataDir & '\TeaTimer\'
    If Not FileExists($sAppDir) Then DirCreate($sAppDir)
    Global Const $sInifile = $sAppDir & 'TeaTimer.ini'
    Global $b7SegmentFont = _Segment7new()
    Global $t7SegmentFont = DllStructCreate('byte[' & BinaryLen($b7SegmentFont) & ']')
    DllStructSetData($t7SegmentFont, 1, $b7SegmentFont)
    Global $h7SegmentFont = _WinAPI_AddFontMemResourceEx(DllStructGetPtr($t7SegmentFont), DllStructGetSize($t7SegmentFont))
    Global $hUpBitmap = _GDIPlus_BitmapCreateFromMemory(_uppng())
    Global $hDownBitmap = _GDIPlus_BitmapCreateFromMemory(_downpng())
    Global $sSoundfile = @TempDir & '\glocke.mp3'
    If Not FileExists($sSoundfile) Then _glocke(True, @TempDir)
    Global $aSound = _SoundOpen($sSoundfile)
    
    Global Const $iAppDPI = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'AppliedDPI')
    Global Const $iRed = 0, $iYellow = 60, $iGreen = 120, $iBlue = -150 ; Farbwerte/HUE gegenueber dem roten Standardwert (Werte von -180 bis +180 sind moeglich)
    Global Const $iWidth = 240, $iHeight = 360
    #EndRegion Konstanten deklarieren
    
    #Region globale Variablen
    Global $iTimerSeconds = IniRead($sInifile, 'Config', 'TimerSeconds', 600)
    Global $iTimerStep = IniRead($sInifile, 'Config', 'TimerStep', 10) ; In der Inidatei kann man die Schrittweite (in Sekunden) fuer die Timereinstellung festlegen
    Global $iTimerDiv = IniRead($sInifile, 'Config', 'TimerDiv', 5) ; In der Inidatei kann man die Schrittweite (in Sekunden) fuer die Timerdiverens festlegen
    Global $bTimerOn = False, $iSeconds = $iTimerSeconds
    #EndRegion globale Variablen
    
    #Region Fenster erstellen
    Global $hGui = GUICreate(StringFormat('%s  v%-3.3s', $sAppTitle, $sAppVersion), $iWidth, $iHeight, -1, -1, -1)
    ;GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseMainGui')
    GUISetBkColor(0x000000)
    GUISetIcon(@ScriptDir & '\prog.ico', 0, $hGui)
    
    Global $Setting_Menu = GUICtrlCreateMenu("Menü")
    Global $Setting_Para = GUICtrlCreateMenuItem("Einstellungen", $Setting_Menu)
    Global $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1, "_Exit")
    Global $helpmenu = GUICtrlCreateMenu("?")
    Global $Info = GUICtrlCreateMenuItem("Version", $helpmenu)
    GUICtrlSetOnEvent(-1, "_showInfo")
    
    Global $idTime = GUICtrlCreateLabel(StringFormat('%02d:%02d', Int($iTimerSeconds / 60), Mod($iTimerSeconds, 60)), 20, 12, $iWidth - 60, 44, $SS_CENTER)
    GUICtrlSetColor(-1, 0x22FF22)
    GUICtrlSetFont(-1, 40 / $iAppDPI * 80, 400, 0, 'Segment7')
    Global $hGUi1 = GUICtrlCreateLabel("Spielzeit", 30, 80, 172, 33,$SS_CENTER)
    GUICtrlSetColor(-1, 0xFEFF22)
    GUICtrlSetFont(-1, 20)
    
    Global $idTime1 = GUICtrlCreateLabel(StringFormat('%02d:%02d', Int(($iTimerSeconds- $iTimerDiv*60) /60  ), Mod($iTimerSeconds, 60)), 20, 120, $iWidth - 60, 44, $SS_CENTER)
    GUICtrlSetColor(-1, 0x22FF22)
    GUICtrlSetFont(-1, 40 / $iAppDPI * 80, 400, 0, 'Segment7')
    Global $hGUi2 = GUICtrlCreateLabel("letzte Minute", 30, 158, 172, 33,$SS_CENTER)
    GUICtrlSetColor(-1, 0xFEFF22)
    GUICtrlSetFont(-1, 20)
    
    Global $idTime2 = GUICtrlCreateLabel(StringFormat('%02d:%02d', Int($iTimerSeconds / 60), Mod($iTimerSeconds, 60)), 20, 200, $iWidth - 60, 44, $SS_CENTER)
    GUICtrlSetColor(-1, 0x22FF22)
    GUICtrlSetFont(-1, 40 / $iAppDPI * 80, 400, 0, 'Segment7')
    Global $hGUi3 = GUICtrlCreateLabel("Pause", 30, 268, 172, 33,$SS_CENTER)
    GUICtrlSetColor(-1, 0xFEFF22)
    GUICtrlSetFont(-1, 20)
    
    
    Global $idUp = GUICtrlCreatePic('', $iWidth - 34, 6, 24, 24)
    GUICtrlSetOnEvent(-1, '_ChangeTimerSeconds')
    Global $hBMP = _GDIPlus_BitmapCreateDIBFromBitmap($hUpBitmap)
    _WinAPI_DeleteObject(GUICtrlSendMsg($idUp, $STM_SETIMAGE, $IMAGE_BITMAP, $hBMP))
    _WinAPI_DeleteObject($hBMP)
    
    Global $idDown = GUICtrlCreatePic('', $iWidth - 34, 34, 24, 24)
    GUICtrlSetOnEvent(-1, '_ChangeTimerSeconds')
    Global $hBMP = _GDIPlus_BitmapCreateDIBFromBitmap($hDownBitmap)
    _WinAPI_DeleteObject(GUICtrlSendMsg($idDown, $STM_SETIMAGE, $IMAGE_BITMAP, $hBMP))
    _WinAPI_DeleteObject($hBMP)
    
    Global $idUpP = GUICtrlCreatePic('', $iWidth - 34, 197, 24, 24)
    GUICtrlSetOnEvent(-1, '_ChangeTimerPauseSeconds')
    Global $hBMP = _GDIPlus_BitmapCreateDIBFromBitmap($hUpBitmap)
    _WinAPI_DeleteObject(GUICtrlSendMsg($idUpP, $STM_SETIMAGE, $IMAGE_BITMAP, $hBMP))
    _WinAPI_DeleteObject($hBMP)
    
    Global $idDownP = GUICtrlCreatePic('', $iWidth - 34, 225, 24, 24)
    GUICtrlSetOnEvent(-1, '_ChangeTimerPauseSeconds')
    Global $hBMP = _GDIPlus_BitmapCreateDIBFromBitmap($hDownBitmap)
    _WinAPI_DeleteObject(GUICtrlSendMsg($idDownP, $STM_SETIMAGE, $IMAGE_BITMAP, $hBMP))
    _WinAPI_DeleteObject($hBMP)
    
    Global $aProgress1 = _ProgressEx_Create(10, 60, $iWidth - 20, 15, $PE_NOTEXT)
    _ProgressEx_SetData($aProgress1, 100, $iGreen)
    
    Global $aProgress2 = _ProgressEx_Create(10, 250, $iWidth - 20, 15, $PE_NOTEXT)
    _ProgressEx_SetData($aProgress2, 100, -0)
    
    Global $idStart = GUICtrlCreateButton('Reset', 10, 310, 50, 25)
    GUICtrlSetFont(-1, 12 / $iAppDPI * 96, 600, 0, 'Tahoma')
    GUICtrlSetOnEvent(-1, '_ResetTimer')
    
    Global $idStop = GUICtrlCreateButton('Stop', 65, 310, 50, 25)
    GUICtrlSetFont(-1, 12 / $iAppDPI * 96, 600, 0, 'Tahoma')
    GUICtrlSetOnEvent(-1, '_StopTimer')
    GUICtrlSetState($idStop, $GUI_DISABLE)
    
    Global $idStart = GUICtrlCreateButton('Start', $iWidth - 120, 310, 110, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 12 / $iAppDPI * 96, 600, 0, 'Tahoma')
    GUICtrlSetOnEvent(-1, '_StartTimer')
    #EndRegion Fenster erstellen
    
    #Region Fenster anzeigen und auf das Schliessen warten (der Rest ist funktionsgesteuert)
    Global $aAccelKeys[2][2] = [['{UP}', $idUp], ['{DOWN}', $idDown]]
    GUISetAccelerators($aAccelKeys)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_MOUSEWHEEL, '_WM_MOUSEWHEEL')
    _Timer_SetTimer($hGui, 1000, '_ChangeTimer')
    WinWaitClose($hGui)
    Exit
    #EndRegion Fenster anzeigen und auf das Schliessen warten (der Rest ist funktionsgesteuert)
    
    #Region Funktionen
    Func _CloseMainGui()
        _Timer_KillAllTimers($hGui)
        _WinAPI_RemoveFontMemResourceEx($h7SegmentFont)
        $t7SegmentFont = 0
        _GDIPlus_BitmapDispose($hUpBitmap)
        _GDIPlus_BitmapDispose($hDownBitmap)
        _GDIPlus_Shutdown()
        _SoundClose($aSound)
        IniWrite($sInifile, 'Config', 'TimerSeconds', $iTimerSeconds)
        IniWrite($sInifile, 'Config', 'TimerStep', $iTimerStep)
        IniWrite($sInifile, 'Config', 'TimerDiv', $iTimerDiv)
        GUIDelete($hGui)
    EndFunc   ;==>_CloseMainGui
    
    Func _ChangeTimer($hWnd, $iMsg, $iIDTimer, $iTime, $idTime1, $idTime2)
        If Not $bTimerOn Then Return
        $iSeconds -= 1
            GUICtrlSetData($idTime, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
    
        If (($iSeconds -$iTimerDiv*60) /60) > 0 Then
            GUICtrlSetData($idTime1, StringFormat('%02d:%02d', Int(($iSeconds- $iTimerDiv*60) / 60), Mod($iSeconds, 60)))
        Else
            GUICtrlSetData($idTime1, '00:00')
        EndIf
    
        _ProgressEx_SetData($aProgress1, 100 / $iTimerSeconds * $iSeconds, $iGreen)
        If (($iSeconds -$iTimerDiv*60) /60) = 0 Then
            _SoundPlay($aSound)
        EndIf
        If $iSeconds = 0 Then
            $bTimerOn = False
            _SoundPlay($aSound)
            #MsgBox($MB_OK + $MB_ICONINFORMATION, $sAppTitle, 'Die eingestellte Zeit ist abgelaufen.', 0, $hGui)
            #_ResetTimer()
        EndIf
    EndFunc   ;==>_ChangeTimer
    
    Func _ChangeTimerPause($hWnd, $iMsg, $iIDTimer, $iTime, $idTime1, $idTime2)
        If Not $bTimerOnPause Then Return
        $iSecondsPause -= 1
            GUICtrlSetData($idTimePause, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
    
        If (($iSecondsPause -$iTimerDiv*60) /60) > 0 Then
        GUICtrlSetData($idTime2, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
        Else
            GUICtrlSetData($idTime2, '00:00')
        EndIf
    
        
        _ProgressEx_SetData($aProgressPause, 100 / $iTimerSeconds * $iSecondsPause, $iGreen)
        If (($iSecondsPause -$iTimerDiv*60) /60) = 0 Then
            _SoundPlay($aSound)
        EndIf
        If $iSeconds = 0 Then
            $bTimerOn = False
            _SoundPlay($aSound)
            #MsgBox($MB_OK + $MB_ICONINFORMATION, $sAppTitle, 'Die eingestellte Zeit ist abgelaufen.', 0, $hGui)
            #_ResetTimer()
        EndIf
    EndFunc   ;==>_ChangeTimerPause
    
    Func _WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam)
        Local $iWheel = _WinAPI_HiWord($wParam) / 120 ; down = -1, up = 1
        Local $aGuiInfo = GUIGetCursorInfo($hGui)
        Switch $aGuiInfo[4]
            Case $idTime
                If $bTimerOn Then Return
                $iTimerSeconds += $iWheel * $iTimerStep
                If $iTimerSeconds < $iTimerStep Then $iTimerSeconds = 6000 - $iTimerStep
                If $iTimerSeconds > 6000 - $iTimerStep Then $iTimerSeconds = $iTimerStep
                $iSeconds = $iTimerSeconds
                GUICtrlSetData($idTime, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
                Return
            Case Else
                Return $GUI_RUNDEFMSG
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>_WM_MOUSEWHEEL
    
    Func _ChangeTimerSeconds()
        If $bTimerOn Then Return
        $iTimerSeconds += (@GUI_CtrlId = $idUp ? 1 : -1) * $iTimerStep
        If $iTimerSeconds < $iTimerStep Then $iTimerSeconds = 6000 - $iTimerStep
        If $iTimerSeconds > 6000 - $iTimerStep Then $iTimerSeconds = $iTimerStep
        $iSeconds = $iTimerSeconds
        GUICtrlSetData($idTime, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
        GUICtrlSetData($idTime1, StringFormat('%02d:%02d', Int(($iSeconds- $iTimerDiv*60) / 60), Mod($iSeconds, 60)))
        
    EndFunc   ;==>_ChangeTimerSeconds
    
    Func _ChangeTimerSecondsPause()
        If $bTimerOn Then Return
        $iTimerSeconds += (@GUI_CtrlId = $idUpP ? 1 : -1) * $iTimerStep
        If $iTimerSeconds < $iTimerStep Then $iTimerSeconds = 6000 - $iTimerStep
        If $iTimerSeconds > 6000 - $iTimerStep Then $iTimerSeconds = $iTimerStep
        $iSeconds = $iTimerSeconds
        GUICtrlSetData($idTime2, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
    
    EndFunc   ;==>_Ch
    Func _ResetTimer()
        $iSeconds = $iTimerSeconds
        GUICtrlSetData($idTime, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
        GUICtrlSetData($idTime1, StringFormat('%02d:%02d', Int(($iSeconds- $iTimerDiv*60) / 60 ), Mod($iSeconds, 60)))
        GUICtrlSetData($idTime2, StringFormat('%02d:%02d', Int($iSeconds / 60), Mod($iSeconds, 60)))
    
        $bTimerOn = False
        GUICtrlSetState($idStart, $GUI_ENABLE)
        GUICtrlSetState($idStop, $GUI_DISABLE)
        _ProgressEx_SetData($aProgress1, 100, $iGreen)
    EndFunc   ;==>_ResetTimer
    
    Func _StopTimer()
            $bTimerOn = False
        GUICtrlSetState($idStart, $GUI_ENABLE)
        GUICtrlSetState($idStop, $GUI_DISABLE)
        ;if $idTime
    EndFunc   ;==>_StopTimer
    
    Func _StartTimer()
        $bTimerOn = True
        GUICtrlSetState($idStart, $GUI_DISABLE)
        GUICtrlSetState($idStop, $GUI_ENABLE)
    EndFunc   ;==>_StartTimer
    #EndRegion Funktionen
    
    #Region Menue
    Func _Showinfo()
        MsgBox(0, "Info", "Version "& $sAppVersion & @CRLF & $sAppDate  & @CRLF & $sAppAuthor)
    EndFunc   ;==>_Showinfo
    
    Func _Exit()
        _CloseMainGui()
    EndFunc   ;==>_Exit
    
    Func _Minimize()
        TraySetState(1)
        GUISetState(@SW_HIDE)
    EndFunc   ;==>_Minimize
    
    Func _Restore()
        TraySetState(2)
        GUISetState(@SW_SHOW)
    EndFunc   ;==>_Restore
    #EndRegion menue
    Alles anzeigen
  • Turnier Timer

    • sccssf
    • 16. Februar 2019 um 23:21

    Mal die Binär Sachen von Oscar aus der Hauptdatei gebracht.
    So das die Programmdatei über sichtlicher ist.

    Dateien

    _DateiEx.au3 136,03 kB – 469 Downloads Spielzeit ohne.au3 8,97 kB – 498 Downloads
  • Turnier Timer

    • sccssf
    • 16. Februar 2019 um 22:14

    Hallo Leute,

    ich habe mal nach langer Zeit ein kleines Projekt angefangen.

    Original von Oscar  Oscar

    Ich brauche 3 Timer in der Schleife. (Schleife noch nicht realisiert)

    Diese Timer Starten alle gleiche, es gibt aktuell nur volle Minuten Unterschiede . (Timer 3 hat noch keine Funktion)

    #########################################

    Welche Funktion will ich umsetzten.

    Bei einen Turnier nach Zeit möchte ich

    - eine Spielzeit haben

    - ein Timer der die letzte Minute zählt

    - ein Timer der nach der Spielzeit startet (Pause)

    und dann geht es von vorne wieder los oder man Reset weil irgend was dazwischen gekommen ist in der Pause

    ######################################

    Gui muss ich noch anpassen

    - Menü wo ich die Zeiten und die Sounddatein festlegen kann

    - Wie häufig soll der Schleifendurchlauf sein
    - Progressbalken bei allen Timern

    ######################################

    später wäre noch eine Übergabe der Parameter per Kommandozeile (Zeiten) toll
    Vielleicht kann der Entwickler dieses Programmes Turnier Programm später den Timer aus seinem Programm ansteuern.

    Euch allen schon mal Danke für Änderungs Vorschläge oder Anpassungen.

    Steffen

    Dateien

    Spielzeit.au3 144,79 kB – 556 Downloads
  • Hilfe Drucker Einstellmenü Auslesen der angeschlossen Drucker

    • sccssf
    • 14. Juli 2017 um 20:12

    Ist mir aktuell nicht aufgefallen. Werde ich aber mal auf diversen Rechner prüfen.

    Danke

  • Hilfe Drucker Einstellmenü Auslesen der angeschlossen Drucker

    • sccssf
    • 14. Juli 2017 um 19:36

    Verstanden

    In meinem Beispiel

    GUICtrlSetData ($druckergui, $drucker_lesen, $drucker)

    Danke werde ich dann mal Probieren.

    Schönes Wochenende.

  • Hilfe Drucker Einstellmenü Auslesen der angeschlossen Drucker

    • sccssf
    • 14. Juli 2017 um 16:23
    AutoIt
    GUICtrlSetData ($druckergui,$drucker_lesen)
    GUICtrlSetData ($druckergui,$drucker)

    So wenn man etwas drüber nach denkt finde ich an was es liegt.
    Wenn ich 2 weg lasse geht es. allerdings kann ich dann den aktivierten Drucker nicht voreinstellen.
    Allerdings geht es bei mir im Admin Modus.

    Ich möchte erst die Liste auslesen und dann noch den Drucker setzten der voreingestellt war (Speichere ich in einer *.INI)

    AutoIt
    $Druckergui = GUICtrlCreateCombo("",217,181,180,21,-1,-1)
    GUICtrlSetData(-1,"")
  • Hilfe Drucker Einstellmenü Auslesen der angeschlossen Drucker

    • sccssf
    • 14. Juli 2017 um 16:05

    Hallo,

    ich habe eine Gui gebastelt und möchte jedem Teilnehmer die Möglichkeit geben seinen Drucker selber einzustellen.

    Dafür habe ich hier

    https://autoit.de/index.php/Thre…ruckerfensters/

    Was gefunden was schon nicht schlecht aussieht.
    Alt siehe Post 2
    #############################################################################################
    Nun mein Problem.


    Bei mir als Admin geht es, bei User die kein Admin sind geht es nicht. Dort wird kein Drucker angezeigt. Oder liegt es an was anderem ?
    ##############################################################################################
    Hat da einer einen Trick ?

    Danke

    Steffen

    AutoIt
    Func _Druckerlesen()
    	Global $hService = ObjGet("winmgmts:{impersonationLevel=impersonate}!" & "\\" & @ComputerName & "\root\cimv2")
    		$sPrinterList = $hService.ExecQuery ("Select * From Win32_Printer")
    		For $sPrinter In $sPrinterList
    		$drucker_lesen &= $sPrinter.name & "|"
    	Next
    EndFunc
  • Funktion in der While Schleife nur alle x mal Starten

    • sccssf
    • 27. Dezember 2016 um 20:11

    Hallo,

    @chip @alpines

    Natürlich ginge Aufgabenplanung. Aber ich möchte ebbend nicht mehr dran denken, wenn ich was ändern sollte auch dort was zu Überprüfen.

    Ich habe meine ersten Sachen 2008 in Autoit geschrieben und dann läuft es Jahre und dann soll ich mal ebbend was ändern.

    So finde ich es gleich wieder.

    Ich habe mal den Ansatz von @autoiter angenommen.

    Die Global Sachen stehen natürlich Außerhalb.
    Klar könnte ich es noch in eine Funktion auslagern.
    So läuft die Aufräum Aktion 1 x am Tag.

    Ich kann bei meinen Variablen die Start-Stunde festlegen.

    Wie gefällt Euch dies ?


    AutoIt
    Global $iAUFRAEUMEN_STUNDE = 19
    Global $iWHILE = 1
    While Sleep(3 * 1000)
    	_Datenbekommen()
    	_Verschieben()
    	_Umbennen()
    	Local $iZEIT_START = @HOUR
    	Local $iZEIT_STOP = $iAUFRAEUMEN_STUNDE - 1
    	If $iZEIT_STOP = $iZEIT_START Then
    		$iAUFRAEUMEN_STUNDE += 1
    	EndIf
    	If $iZEIT_START = $iAUFRAEUMEN_STUNDE Then
    		_aelter_loeschen()
    		_verschieben_aelter()
    		$iAUFRAEUMEN_STUNDE -= 1
    	EndIf
    	If Mod($iWHILE, 100) = 0 Then
            $iWHILE = 1
    		_PDFMerge()
    	EndIf
    	$iWHILE += 1
    WEnd
    Alles anzeigen
  • Funktion in der While Schleife nur alle x mal Starten

    • sccssf
    • 24. Dezember 2016 um 14:27

    Das mit der Stunde überlege ich mir maL

    Vielleicht lasse ich es auch nur alle 24 h laufen.
    Ich habe noch nicht unter Last getestet. Im Archiv werden ca. 2000-3000 Dateien liegen nach 40 Tagen. Das kommt dann nicht auf eine Stunde drauf an.

    @autoiter @alpines Frohes Fest

  • Funktion in der While Schleife nur alle x mal Starten

    • sccssf
    • 24. Dezember 2016 um 12:47
    Zitat von alpines

    Warum kein AdlibRegister für die Funktionen? Dann sparst du auch dir die Zählervariable. Du brauchst dann nur eine Standard While-Sleep(100)-WEnd-Schleife.Weiß jetzt nicht ob deine Funktionen blockierend sind oder parallel laufen dürfen.

    Es gibt Funktionen die sollten vor anderen Funktionen laufen.

    AdlibRegister war mir vorher noch nicht bekannt.

    Hier mal mein ganzer Code ohne AdlibRegister.

    AutoIt
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <Misc.au3>
    #include <Date.au3>
    #include <_FileDeleteAfterXDays.au3> ;(autoit Forum)
    
    
    If _Singleton("PDF-Name", 1) = 0 Then Exit
    
    
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    
    
    Global Const $s_PATH_START = "D:\PDF-Aussteuerung\"
    Global Const $s_PATH_ZWISCHEN = "D:\PDF-Aussteuerung\zwischen\"
    Global Const $s_PATH_FERTIG = "D:\PDF-Aussteuerung\fertig\"
    Global Const $s_PATH_WA = "D:\Daten\Archiv-WA\"
    Global Const $s_PATH_WA_ARCHIV = "D:\Daten\Archiv-WA\Archiv\"
    Global Const $s_KENNZEICEHN_WA_ARCHIV_AELTER_VERSCHIEBEN = "40"
    Global Const $s_KENNZEICEHN_WA_ARCHIV_AELTER_LOESCHEN = "60"
    Global Const $s_KENNZEICHEN_WA_ALT = "ab"
    Global Const $s_KENNZEICHEN_WA_NEU = "wa"
    Global Const $s_PATH_LS = "D:\PDF-Aussteuerung\fertig\LS\"
    Global Const $s_KENNZEICHEN_LS = "LS"
    Global Const $s_PATH_LS_ZWISCHEN = "D:\PDF-Aussteuerung\fertig\LS\zwischen\"
    Global Const $s_PATH_MUELL = "D:\PDF-Aussteuerung\fertig\muell\"
    Global Const $s_PDFTOTEXT = "D:\PDF-Aussteuerung\script\pdftotext.exe"
    Global Const $s_PDFPDF = "D:\PDF-Aussteuerung\script\pdftk.exe"
    Global Const $s_PDFBRIEFPAPIER = "D:\PDF-Aussteuerung\script\papier.pdf"
    Global Const $s_MyFACTORY_DRUCK_ORDNER = "d:\Program Files (x86)\Serverprint\printed\"
    Global Const $s_MyFACTORY_DRUCK_ORDNER_ABLAGE = "d:\Program Files (x86)\Serverprint\printed\ablage\"
    Global Const $s_EXT = '.pdf'
    Global Const $s_SEARCH = '@@WA-'
    Global $a_REG
    Global $iwhile = 1
    
    
    $Form1 = GUICreate("Datei Umbennen", 294, 135, 192, 124)
    
    
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1, "_Exit")
    
    
    $helpmenu = GUICtrlCreateMenu("?")
    $Info = GUICtrlCreateMenuItem("Version", $helpmenu)
    GUICtrlSetOnEvent(-1, "_showInfo")
    
    
    GUICtrlCreateLabel("PDF Umbennungstool", 10, 10, 274, 104, $SS_CENTER, -1)
    GUICtrlSetFont(-1, 22, 700, 0, "Tahoma")
    GUICtrlSetBkColor(-1, "-2")
    
    
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Minimize')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    
    
    TraySetOnEvent(-7, '_Restore')
    
    
    While Sleep(3 * 1000)
    _Datenbekommen()
    _Verschieben()
    _Umbennen()
    
    
    	If Mod ($iwhile, 1200) = 0 Then
    		_aelter_loeschen()
    		_verschieben_aelter()
    		$iwhile = 0
    	ElseIf Mod ($iwhile,100) = 0 Then
    		_PDFMerge()	
    	EndIf
    	$iwhile +=1
    WEnd
    
    
    Func _Datenbekommen()
    	_FileDeleteAfterXDays($s_MyFACTORY_DRUCK_ORDNER_ABLAGE, 2, True)
    
    
    	FileDelete($s_PATH_START & "*.xml")
    
    
    	FileCopy($s_MyFACTORY_DRUCK_ORDNER, $s_MyFACTORY_DRUCK_ORDNER_ABLAGE, 1)
    	FileMove($s_MyFACTORY_DRUCK_ORDNER, $s_PATH_START, 1)
    	FileMove($s_PATH_START & "*.pdf", $s_PATH_ZWISCHEN, 1)
    EndFunc   ;==>_Datenbekommen
    
    
    
    
    Func _PDFMerge()
    	$s_SEARCHPDFMERGE = FileFindFirstFile($s_PATH_LS_ZWISCHEN & "*.pdf")
    	If $s_SEARCHPDFMERGE <> -1 Then
    		$a_LISTPDF = _FileListToArray($s_PATH_LS_ZWISCHEN, '*', 1)
    		For $i = 1 To $a_LISTPDF[0]
    			RunWait($s_PDFPDF & ' "' & $s_PATH_LS_ZWISCHEN & $a_LISTPDF[$i] & '"', "", @SW_HIDE)
    			$s_Namein = $s_PATH_LS_ZWISCHEN & $a_LISTPDF[$i]
    			$s_Nameout = $s_PATH_LS & $a_LISTPDF[$i]
    			$s_Papier = ' background ' & $s_PDFBRIEFPAPIER & ' output '
    			RunWait($s_PDFPDF & " " & $s_Namein & $s_Papier & $s_Nameout, "", @SW_HIDE)
    			FileDelete($s_PATH_LS_ZWISCHEN & $a_LISTPDF[$i])
    		Next
    	EndIf
    EndFunc   ;==>_PDFMerge
    
    
    Func _Verschieben()
    	FileMove($s_PATH_FERTIG & $s_KENNZEICHEN_WA_ALT & "*.pdf", $s_PATH_WA, 1)
    	FileMove($s_PATH_FERTIG & $s_KENNZEICHEN_WA_NEU & "*.pdf", $s_PATH_WA, 1)
    	FileMove($s_PATH_FERTIG & $s_KENNZEICHEN_LS & "*.pdf", $s_PATH_LS_ZWISCHEN, 1)
    	FileMove($s_PATH_FERTIG & "*.pdf", $s_PATH_MUELL, 1)
    EndFunc   ;==>_Verschieben
    
    
    Func _Umbennen()
    	$s_SEARCH_ZWISCHEN = FileFindFirstFile($s_PATH_ZWISCHEN & "*.pdf")
    	If $s_SEARCH_ZWISCHEN <> -1 Then
    		$a_LIST = _FileListToArray($s_PATH_ZWISCHEN, '*', 1)
    		For $i = 1 To $a_LIST[0]
    			If StringRight($s_PATH_ZWISCHEN & $a_LIST[$i], StringLen($s_EXT)) = $s_EXT Then
    				RunWait($s_PDFTOTEXT & ' "' & $s_PATH_ZWISCHEN & $a_LIST[$i] & '"', "", @SW_HIDE)
    				FileMove($s_PATH_ZWISCHEN & "*.txt", $s_PATH_FERTIG & "2.txt", 1)
    				$a_REG = StringRegExp(FileRead($s_PATH_FERTIG & "2.txt"), $s_SEARCH & '(.*)', 1)
    				FileDelete($s_PATH_FERTIG & "2.txt")
    				If IsArray($a_REG) Then
    					FileMove($s_PATH_ZWISCHEN & $a_LIST[$i], $s_PATH_FERTIG & $a_REG[0] & $s_EXT, 1)
    				Else
    					FileDelete($s_PATH_ZWISCHEN & $a_LIST[$i])
    				EndIf
    			EndIf
    		Next
    	EndIf
    EndFunc   ;==>_Umbennen
    
    
    Func _Showinfo()
    	MsgBox(0, "Info", "Version 1.6 " & @CRLF & "24.12.2016")
    EndFunc   ;==>_Showinfo
    
    
    Func _Exit()
    	Exit
    EndFunc   ;==>_Exit
    
    
    Func _Minimize()
    	TraySetState(1)
    	GUISetState(@SW_HIDE)
    EndFunc   ;==>_Minimize
    
    
    Func _Restore()
    	TraySetState(2)
    	GUISetState(@SW_SHOW)
    EndFunc   ;==>_Restore
    
    
    func _verschieben_aelter()
    	local $s_SEARCH_VERSCHIEBN_AELTER = FileFindFirstFile($s_PATH_WA & "*")
    	If $s_SEARCH_VERSCHIEBN_AELTER <> -1 Then
    
    
    		local $a_WA_ARCHIV = _FileListToArray($s_PATH_WA, "*", 1)
    		local $a_WA_ARCHIV_EXT [$a_WA_ARCHIV[0]][2] ; 2D Array erstellen
    
    
    		for $i = 1 to $a_WA_ARCHIV[0]
    
    
    		$a_WA_ARCHIV_EXT[$i - 1][0] = $a_WA_ARCHIV[$i]
    		$a_WA_ARCHIV_EXT[$i - 1][1] = StringRegExpReplace(FileGetTime($s_PATH_WA  & $a_WA_ARCHIV[$i], 0, 1), '(\d{4})(\d{2})(\d{2})(.*)', '$1/$2/$3')
    
    
    			If _DateDiff('D', $a_WA_ARCHIV_EXT[$i - 1][1], _NowCalc()) > $s_KENNZEICEHN_WA_ARCHIV_AELTER_VERSCHIEBEN Then
    			Filemove ($s_PATH_WA & $a_WA_ARCHIV_Ext[$i - 1][0], $s_PATH_WA_ARCHIV ,1)
    
    
    			EndIf
    		next
    	EndIf
    EndFunc
    
    
    func _aelter_loeschen()
    	local $s_SEARCH_LOESCHEN = FileFindFirstFile($s_PATH_WA_ARCHIV & "*")
    	If $s_SEARCH_LOESCHEN <> -1 Then
    
    
    		local $a_WA_ARCHIV_ABLAGE = _FileListToArray($s_PATH_WA_ARCHIV, "*", 1)
    		local $a_WA_ARCHIV_EXT_ABLAGE [$a_WA_ARCHIV_ABLAGE[0]][2] ; 2D Array erstellen
    
    
    		for $i = 1 to $a_WA_ARCHIV_ABLAGE[0]
    
    
    		$a_WA_ARCHIV_EXT_ABLAGE[$i - 1][0] = $a_WA_ARCHIV_ABLAGE[$i]
    		$a_WA_ARCHIV_EXT_ABLAGE[$i - 1][1] = StringRegExpReplace(FileGetTime($s_PATH_WA_ARCHIV & $a_WA_ARCHIV_ABLAGE[$i], 0, 1), '(\d{4})(\d{2})(\d{2})(.*)', '$1/$2/$3')
    
    
    			If _DateDiff('D', $a_WA_ARCHIV_EXT_ABLAGE[$i - 1][1], _NowCalc()) > $s_KENNZEICEHN_WA_ARCHIV_AELTER_LOESCHEN Then
    			FileDelete ($s_PATH_WA_ARCHIV & $a_WA_ARCHIV_EXT_ABLAGE[$i - 1][0])
    
    
    			EndIf	
    		next
    	EndIf
    EndFunc
    Alles anzeigen
  • Funktion in der While Schleife nur alle x mal Starten

    • sccssf
    • 24. Dezember 2016 um 12:27

    So habe mal etwas rum gespielt.

    Will das bestimmte Funktionen alle 3 sek andere 1 x in der Stunde andere alle 5 Minuten.

    oder kann man den Zähler durchlaufen lassen ? Gibt es dort Probleme bei 7/24 Betrieb?

    AutoIt
    While Sleep(3 * 1000)
    	If Mod ($iwhile, 1200) = 0 Then
    		_aelter_loeschen()
    		_verschieben_aelter()
    		$iwhile = 0
    	ElseIf Mod ($iwhile,100) = 0 Then
    		_PDFMerge()	
    	EndIf
    	_Datenbekommen()
    	_Verschieben()
    	_Umbennen()
    	$iwhile +=1
    WEnd
    Alles anzeigen
  • Funktion in der While Schleife nur alle x mal Starten

    • sccssf
    • 24. Dezember 2016 um 00:40

    Danke,

    Hatte das nur schnell hier zusammen geschrieben. Wollte mich nur nicht verrennen.

    Steffen

  • Funktion in der While Schleife nur alle x mal Starten

    • sccssf
    • 24. Dezember 2016 um 00:00

    Hallo,

    ich bräuchte einen Tip wie bekomme ich es hin das ich eine Funktion nicht bei jedem Schleifendurchlauf ausführe.

    Hat jemand ein Beispiel oder einen Link zum Lesen. Habe nicht direkt was gefunden. (Vielleicht falsche Suchbegriffe)
    Klar so in der Art. Mit If ist mir auch Klar nur lösche ich dann $i mal wieder auf Null oder macht man das anders ?

    Frohes Fest

    Steffen


    AutoIt
    global $i = 0
    While Sleep( * 1000)
    If $i> 10
    _aelter_loeschen()
    _verschieben_aelter()
    $i = 0
    Elsif< 10
    _Datenbekommen()
    _Verschieben()
    _Umbennen()
    _PDFMerge()
    $i += 1
    EndIf
    WEnd
    Alles anzeigen
  • PDF Datei umbenennen aus Text

    • sccssf
    • 20. Dezember 2016 um 19:15

    @alpines

    Danke werde es versuchen sauber zu schreiben.

    Funktion ist

    In einem Startverzeichnis kommen immer wieder PDF.

    Sobald die dort sind wird ein String (Text) @@WA- gesucht. Dies geht ja nicht direkt, also wird die PDF erst in eine TXT gewandelt.

    Diese wird dann durchsucht. Alles nach dem @@WA- wird genommen um die Datei umzubennen.

    Dann mit es eine einfache Anpassung gibt und ich noch nicht weis was wir noch so alles damit machen. Sortiere ich die Dateien erst später.
    So kann ich noch Funktion schnell ran hängen.

    Eigentlich soll es Später als Dienst laufen. Die Gui ist nur da damit man aktuell schnell optisch sieht das es läuft.

  • PDF Datei umbenennen aus Text

    • sccssf
    • 20. Dezember 2016 um 17:59

    @alpines

    Habe mal den Code geändert. Das mit dem auseinanderziehen ist mir noch nicht 100% klar.

    Bin gerade noch dabei eine PDF Funktion zum einbinden eines Briefpapiers einzubauen.

    AutoIt
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <Misc.au3>
    
    
    
    
    If _Singleton("PDF-Name", 1) = 0 Then
    	Exit
    EndIf
    
    
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    
    
    Global Const $s_PATH_START = "c:\testpdf\"
    Global Const $s_PATH_ZWISCHEN = "c:\testpdf\zwischen\"
    Global Const $s_PATH_FERTIG = "C:\testpdf\fertig\"
    Global Const $s_PATH_WA = "C:\testpdf\fertig\WA\"
    Global Const $s_KENNZEICHEN_WA = "ab"
    Global Const $s_PATH_LS = "C:\testpdf\fertig\LS\"
    Global Const $s_KENNZEICHEN_LS = "LS"
    Global Const $s_PATH_LS_ZWISCHEN = "C:\testpdf\fertig\LS\zwischen\"
    Global Const $s_PATH_MUELL = "C:\testpdf\fertig\muell\"
    Global Const $s_PDFTOTEXT = "C:\testpdf\script\pdftotext.exe"
    Global Const $s_PDFPDF = "C:\testpdf\script\pdftk.exe"
    Global Const $s_EXT = '.pdf'
    Global Const $s_SEARCH = '@@WA-'
    Global $a_REG
    $Form1 = GUICreate("Datei Umbennen", 294, 135, 192, 124)
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1, "_Exit")
    $helpmenu = GUICtrlCreateMenu("?")
    $Info = GUICtrlCreateMenuItem("Version", $helpmenu)
    GUICtrlSetOnEvent(-1, "_showInfo")
    GUICtrlCreateLabel("PDF Umbennungstool",10,10,274,104,$SS_CENTER,-1)
    GUICtrlSetFont(-1,22,700,0,"Tahoma")
    GUICtrlSetBkColor(-1,"-2")
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Minimize')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    TraySetOnEvent(-7, '_Restore')
    
    
    While Sleep(3 * 1000)
    	_Verschieben()
    	_StartKopie()
    	_PDFMerge()
    WEnd
    
    
    Func _PDFMerge()
    ;~ 	$s_SEARCHPDFMERGE = FileFindFirstFile($s_PATH_LS_ZWISCHEN & "*.pdf")
    ;~ 	If $s_SEARCHPDFMERGE <> -1 Then
    ;~ 			$a_LISTPDF = _FileListToArray($s_PATH_LS_ZWISCHEN, '*', 1)
    ;~ 			For $i = 1 To $a_ListPDF[0]
    ;~ 				RunWait($s_PDFPDF & ' "' & $s_PATH_LS_ZWISCHEN & $a_LISTPDF[$i] & '"', "", @SW_HIDE)
    EndFunc                                    
    
    
    Func _Verschieben()
    	FileMove($s_PATH_FERTIG & $s_KENNZEICHEN_WA & "*.pdf", $s_PATH_WA, 1)
    	FileMove($s_PATH_FERTIG & $s_KENNZEICHEN_LS & "*.pdf", $s_PATH_LS_ZWISCHEN , 1)
    	FileMove($s_PATH_FERTIG & "*.pdf", $s_PATH_MUELL, 1)
    EndFunc   ;==>_Verschieben
    
    
    Func _StartKopie()
    	FileMove($s_PATH_START, $s_PATH_ZWISCHEN, 1)
    	$s_SEARCH_ZWISCHEN = FileFindFirstFile($s_PATH_ZWISCHEN & "*.pdf")
    	If $s_SEARCH_ZWISCHEN <> -1 Then
    		$a_LIST = _FileListToArray($s_PATH_ZWISCHEN, '*', 1)
    		For $i = 1 To $a_LIST[0]
    			If StringRight($s_PATH_ZWISCHEN & $a_LIST[$i], StringLen($s_EXT)) = $s_EXT Then
    				RunWait($s_PDFTOTEXT & ' "' & $s_PATH_ZWISCHEN & $a_LIST[$i] & '"', "", @SW_HIDE)
    				FileMove($s_PATH_ZWISCHEN & "*.txt", $s_PATH_FERTIG & "2.txt", 1)
    				$a_REG = StringRegExp(FileRead($s_PATH_FERTIG & "2.txt"), $s_SEARCH & '(.*)', 1)
    				FileDelete($s_PATH_FERTIG & "2.txt")
    				If IsArray($a_REG) Then
    					FileMove($s_PATH_ZWISCHEN & $a_LIST[$i], $s_PATH_FERTIG & $a_REG[0] & $s_EXT, 1)
    				Else
    					FileDelete($s_PATH_ZWISCHEN & $a_LIST[$i])
    				EndIf
    			EndIf
    		Next
    	EndIf
    EndFunc   ;==>_Startkopie
    
    
    Func _Showinfo()
    	MsgBox(0, "Info", "Version 1.4 " & @CRLF & "Steffen Förster" & @CRLF & "20.12.2016")
    EndFunc   ;==>_showInfo
    
    
    Func _Exit()
    	Exit
    EndFunc   ;==>_Exit
    
    
    Func _Minimize()
    	TraySetState(1)
    	GUISetState(@SW_HIDE)
    EndFunc   ;==>_Minimize
    
    
    Func _Restore()
    	TraySetState(2)
    	GUISetState(@SW_SHOW)
    EndFunc   ;==>_Restore
    Alles anzeigen
  • PDF Datei umbenennen aus Text

    • sccssf
    • 20. Dezember 2016 um 16:25

    @alpines Ich benutzte ISN Auto Studio da habe ich OrganizeIncludes nicht zum laufen bekommen. Muss ich mal noch schauen ob ich dafür noch eine Anleitung finde .

    Mit Trial and Error habe ich das rausgeworfen.

    ; #include <Array.au3>
    ; #include <ButtonConstants.au3>
    ; #include <WindowsConstants.au3>
    ; #include <EditConstants.au3>
    ; #include <MsgBoxConstants.au3>

  • PDF Datei umbenennen aus Text

    • sccssf
    • 20. Dezember 2016 um 15:32

    So durch meine Erkältung habe ich nun doch selber mal Zeit gehabt um den Code zu optimieren.

    Wie erkenne ich ob ich zu viele <*.au3> integriert habe?

    AutoIt
    #include <Array.au3>
    #include <File.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Misc.au3>
    
    
    If _Singleton("PDF-Name", 1) = 0 Then
    	Exit
    EndIf
    
    
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    
    
    Global Const $s_Path_start = "c:\testpdf\"
    Global Const $s_Path_zwischen = "c:\testpdf\zwischen\"
    Global Const $s_Path_fertig = "C:\testpdf\fertig\"
    Global Const $s_Path_WA = "C:\testpdf\fertig\WA\"
    Global Const $s_Kennzeichen_WA = "ab"
    Global Const $s_Path_LS = "C:\testpdf\fertig\LS\"
    Global Const $s_Kennzeichen_LS = "LS"
    Global Const $s_Path_Muell = "C:\testpdf\fertig\muell\"
    Global Const $s_PDFtoText = "C:\testpdf\script\pdftotext.exe"
    Global Const $s_Ext = '.pdf'
    Global Const $s_Search = '@@WA-'
    Global $a_Reg
    $Form1 = GUICreate("Datei Umbennen", 294, 135, 192, 124)
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1, "_Exit")
    $helpmenu = GUICtrlCreateMenu("?")
    $Info = GUICtrlCreateMenuItem("Version", $helpmenu)
    GUICtrlSetOnEvent(-1, "_showInfo")
    GUICtrlCreateLabel("PDF Umbennungstool",10,10,274,104,$SS_CENTER,-1)
    GUICtrlSetFont(-1,22,700,0,"Tahoma")
    GUICtrlSetBkColor(-1,"-2")
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Minimize')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    TraySetOnEvent(-7, '_Restore')
    
    
    While Sleep(3 * 1000)
    	_Verschieben()
    	_Startkopie()
    WEnd
    
    
    Func _Verschieben()
    	FileMove($s_Path_fertig & $s_Kennzeichen_WA & "*.pdf", $s_Path_WA, 1)
    	FileMove($s_Path_fertig & $s_Kennzeichen_LS & "*.pdf", $s_Path_LS, 1)
    	FileMove($s_Path_fertig & "*.pdf", $s_Path_Muell, 1)
    EndFunc   ;==>_Verschieben
    
    
    Func _Startkopie()
    	FileMove($s_Path_start, $s_Path_zwischen, 1)
    	Global $search = FileFindFirstFile($s_Path_zwischen & "*.pdf")
    	If $search <> -1 Then
    		$a_List = _FileListToArray($s_Path_zwischen, '*', 1)
    		For $i = 1 To $a_List[0]
    			If StringRight($s_Path_zwischen & $a_List[$i], StringLen($s_Ext)) = $s_Ext Then
    				RunWait($s_PDFtoText & ' "' & $s_Path_zwischen & $a_List[$i] & '"', "", @SW_HIDE)
    				FileMove($s_Path_zwischen & "*.txt", $s_Path_fertig & "2.txt", 1)
    				$a_Reg = StringRegExp(FileRead($s_Path_fertig & "2.txt"), $s_Search & '(.*)', 1)
    				FileDelete($s_Path_fertig & "2.txt")
    				If IsArray($a_Reg) Then
    					FileMove($s_Path_zwischen & $a_List[$i], $s_Path_fertig & $a_Reg[0] & $s_Ext, 1)
    				Else
    					FileDelete($s_Path_zwischen & $a_List[$i])
    				EndIf
    			EndIf
    		Next
    	EndIf
    EndFunc   ;==>_Startkopie
    
    
    Func _showInfo()
    	MsgBox(0, "Info", "Version 1.4 " & @CRLF & "20.12.2016")
    EndFunc   ;==>_showInfo
    
    
    Func _Exit()
    	Exit
    EndFunc   ;==>_Exit
    
    
    Func _Minimize()
    	TraySetState(1)
    	GUISetState(@SW_HIDE)
    EndFunc   ;==>_Minimize
    
    
    Func _Restore()
    	TraySetState(2)
    	GUISetState(@SW_SHOW)
    EndFunc   ;==>_Restore
    Alles anzeigen
  • PDF Datei umbenennen aus Text

    • sccssf
    • 8. Dezember 2016 um 21:38

    Hallo,

    bin über den Beitrag zu meiner Umsetzung gekommen. Leider ist dieser sehr als und geschlossen.
    https://autoit.de/index.php/Thre…d-die/?pageNo=1


    Benutze die pdftotext.exe von hier http://www.foolabs.com/xpdf/download.html

    Und da ich das hier auch als Wissensdatenbank benutzte wollte ich meinen schlecht geschriebenen Code hier mal zurück geben.

    Vielleicht kann es einer gebrauchen ? Und vielleicht hat einer noch lust den Code zu optimieren.

    Gerade bei den Variablen für die Verzeichnisse stelle ich mich etwas schwer. Habe es zwar schon mal umgeschrieben allerdings habe ich es nicht Fehlerfrei zum laufen bekommen.

    Ich hoffe es ist Ok wenn ich es hier so schreibe.

    AutoIt
    #include <Array.au3> 
    #include <File.au3> 
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #include <MsgBoxConstants.au3>
    
    
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Global Const $s_Path = "S:\zwischen\" ; Verzeichnis, in dem gesucht werden soll (ohne Backslash) 
    Global Const $s_Path1 = "S:\fertig\" ; Verzeichnis, in dem gesucht werden soll (ohne Backslash) 
    Global Const $s_Ext = '.pdf' ; Dateiendung, nach der gesucht werden soll... :P 
    Global Const $s_Search = 'ABC' ; Das zu suchende Wort 
    Global $a_Reg
    $Form1 = GUICreate("Datei Umbennen", 200, 155, 192, 124)
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1,"_Exit")
    $helpmenu = GUICtrlCreateMenu("?")
    $Info = GUICtrlCreateMenuItem("Version",$helpmenu)
    GUICtrlSetOnEvent(-1,"_showInfo")
    $wachen = GUICtrlCreateButton("Umbennen", 8, 16, 180, 100)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0x00FF00)
    GUISetState(@SW_HIDE)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Minimize')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    TraySetOnEvent( -7, '_Restore')
    
    
    While sleep(10000)
    Filemove ("S:\", "S:\zwischen",1)
    Local $search = FileFindFirstFile("S:\zwischen\*.pdf")
    If $search <> -1 Then
    $a_List = _FileListToArray ("S:\zwischen\", '*', 1) ; Ein Array aller Dateien im Ordner wird erstellt 
    
    
    For $i = 1 To $a_List[0] 
    If StringRight ($s_Path & '\' & $a_List[$i], StringLen ($s_Ext)) = $s_Ext Then 
    ;~ ; (-1) Falls die Dateiendung stimmt... 
    RunWait('"S:\script\pdftotext.exe" ' & $s_Path & $a_List[$i],"",@SW_HIDE)
    Filemove ("S:\zwischen\*.txt","S:\fertig\2.txt",1)
    
    
    $a_Reg = StringRegExp (FileRead ("S:\fertig\2.txt"), $s_Search & '(.............)', 1) 
    FileDelete("S:\fertig\2.txt") 
    ;~ ; (-1) ... wird nach dem Wort und drei nachfolgenden Zeichen gesucht 
     If IsArray ($a_Reg) Then 
    ;~ ; (-1) Falls das Wort gefunden wurde... 
    FileMove ($s_Path & '\' & $a_List[$i], $s_Path1 & '\' & $a_Reg[0] & $s_Ext, 1) 
    ;~ ; (-1) ... wird die Datei umbenannt 
    EndIf
    EndIf 
    Next	
    EndIf
    WEnd
    
    
    Func _showInfo()
                MsgBox (0,"Info","Version 1.0 "&@CRLF&"08.12.2016")
    EndFunc
    
    
    Func _Exit()
        Exit
    EndFunc
    
    
    Func _Minimize()
        TraySetState(1)
        GUISetState(@SW_HIDE)
    EndFunc
    
    
    Func _Restore()
        TraySetState(2)
        GUISetState(@SW_SHOW)
    EndFunc
    Alles anzeigen


    Gruß Steffen

  • Button Farbe Ändern wenn ein Prozess läuft

    • sccssf
    • 10. November 2016 um 17:08

    Hallo,

    habe heute noch etwas an meinem Programm geändert.

    Jetzt habe ich aber das Problem, dass der Prozess nur überwacht wird, wenn ich nach dem Programmstart die Exe setzte in den Einstellungen.

    Was mache ich falsch?
    Man erkennt es schön wenn der Button türkis ist.

    Habt ihr eine Lösung wie ich das Passwort Verschlüsseln kann in der INI. Klar ist mir das jeder das Programm, rückübersetzten kann und damit die Verschlüsselung rückgängig machen kann.

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <MsgBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    
    
    
    
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Global $iExistCheck = True
    global $Form2,$BNspeichern,$PWspeichern,$DOspeichern,$EXEspeichern,$PRspeichern
    DirCreate(@AppDataDir & '\PN\')
    
    
    $name =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Benutzer", "")
    $pw =IniRead(@AppDataDir & "\PN\pn.ini", "User", "PW", "")
    $do =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Domaene", "")
    $pr =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Prozess", "")
    $exe =IniRead(@AppDataDir & "\PN\pn.ini", "User", "EXE", "")
    $name =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Benutzer", "")
    
    
    $Form1 = GUICreate("Serverüberwachung", 348, 155, 192, 124)
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1,"_Exit")
    $helpmenu = GUICtrlCreateMenu("?")
    $Einstellung = GUICtrlCreateMenuItem("Einstellungen",$helpmenu)
    GUICtrlSetOnEvent(-1,"_settings")
    $Info = GUICtrlCreateMenuItem("Version",$helpmenu)
    GUICtrlSetOnEvent(-1,"_showInfo")
    $wachen = GUICtrlCreateButton("", 8, 16, 100, 100)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0x00FFFF)
    $reset = GUICtrlCreateButton("Reset-Start", 124, 16, 105, 100,1, $WS_EX_DLGMODALFRAME)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0x4452F0)
    GUICtrlSetOnEvent(-1,"_RESET")
    $stopen = GUICtrlCreateButton("STOP", 240, 16, 100, 100,1, $WS_EX_DLGMODALFRAME)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0xe9f01a)
    GUICtrlSetOnEvent(-1,"_STOP")
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    TraySetOnEvent( -7, '_Restore')
    
    
    
    
    
    
    While Sleep(10)
    	If ProcessExists($exe) Then
    		If Not $iExistCheck Then
    			$iExistCheck = True
    			GUICtrlSetData($wachen, "läuft")
    			GUICtrlSetBkColor($wachen, 0x00FF00)
    		EndIf
    	Else
    		If $iExistCheck Then
    			$iExistCheck = False
    			GUICtrlSetData($wachen, "läuft nicht")
    			GUICtrlSetBkColor($wachen, 0xFF0000)
    		EndIf
    	EndIf
    WEnd
    
    
    Func _settings()
                    GuiSETState(@SW_HIDE, $Form1)
                    $name =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Benutzer", "")
                    $pw =IniRead(@AppDataDir & "\PN\pn.ini", "User", "PW", "")
    				$do =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Domaene", "")
    				$pr =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Prozess", "")
    				$exe =IniRead(@AppDataDir & "\PN\pn.ini", "User", "EXE", "")
                    $Form2 = GUICreate("Einstellungen", 293, 232, 192, 124)
                    $Benutzername = GUICtrlCreateLabel("Benutzername", 8, 16, 100, 22)
                    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")
    				$Passwort = GUICtrlCreateLabel("Passwort", 8, 52, 66, 22)
                    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")
    				$Domaene = GUICtrlCreateLabel("Domäne", 8, 90, 100, 22)
                    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")                
    				$Prozess = GUICtrlCreateLabel("Prozess", 8, 128, 100, 22)
                    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")                
    				$_EXE = GUICtrlCreateLabel("Exe", 8, 164, 100, 22)
                    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")                
                    $BNspeichern = GUICtrlCreateInput($name, 128, 16, 145, 21)
    				$PWspeichern = GUICtrlCreateInput("", 128, 52, 145, 21,$ES_PASSWORD)
    				$DOspeichern = GUICtrlCreateInput($do, 128, 90, 145, 21)
    				$PRspeichern = GUICtrlCreateInput($pr, 128, 128, 145, 21)
                    $EXEspeichern = GUICtrlCreateInput($exe, 128, 164, 145, 21)
    				$Speichern1 = GUICtrlCreateButton("Speichern", 128, 202, 65, 25)
                    GUICtrlSetOnEvent(-1,"_settings_save")
                    $Abbrechen = GUICtrlCreateButton("Abbrechen", 208, 202, 65, 25)
                    GUICtrlSetOnEvent(-1,"_settings_end")
                    GUISetState(@SW_SHOW)
                    GUISetOnEvent($GUI_EVENT_CLOSE, '_settings_end')
    EndFunc
    
    
    Func _settings_save()
                        IniWrite (@AppDataDir & "\PN\pn.ini","User", "Benutzer", GUICtrlRead ($BNspeichern))
                        IniWrite (@AppDataDir & "\PN\pn.ini","User", "Domaene", GUICtrlRead ($DOspeichern))
                        IniWrite (@AppDataDir & "\PN\pn.ini","User", "Prozess", GUICtrlRead ($PRspeichern ))
                        IniWrite (@AppDataDir & "\PN\pn.ini","User", "EXE", GUICtrlRead ($EXEspeichern))
                        if GUICtrlRead ($PWspeichern) <> "" Then
    					IniWrite (@AppDataDir & "\PN\pn.ini","User", "PW", GUICtrlRead ($PWspeichern))
    					Endif
                        $name =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Benutzer", "")
                        $pw =IniRead(@AppDataDir & "\PN\pn.ini", "User", "PW", "")
                        $do =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Domaene", "")
    					$pr =IniRead(@AppDataDir & "\PN\pn.ini", "User", "Prozess", "")
    					$exe =IniRead(@AppDataDir & "\PN\pn.ini", "User", "EXE", "")
    					GUIDelete($Form2)
                        GUISetState(@SW_SHOW, $Form1)
    EndFunc
    
    
    Func _settings_end()
                        GUIDelete($Form2)
                        GUISetState(@SW_SHOW, $Form1)
    EndFunc
    
    
    Func _showInfo()
                MsgBox (0,"Info","Version 1.4 "&@CRLF&"Stand 10.11.2016"&@CRLF& "Steffen Förster",5)
    EndFunc
    
    
    Func _Exit()
        Exit
    EndFunc
    
    
    Func _Minimize()
        TraySetState(1)
        GUISetState(@SW_HIDE)
    EndFunc
    
    
    Func _Restore()
        TraySetState(2)
        GUISetState(@SW_SHOW)
    EndFunc
    
    
    Func _RESET() ;Hier passiert was wenn der Button gedrückt wird
    ProcessClose($exe)
    RunAsWait($name,$do,$pw,0,@ComSpec  &  " /c " &"net stop "& $pr,"",@SW_HIDE)
    RunAsWait($name,$do,$pw,0,@ComSpec  &  " /c " &"net start "& $pr,"",@SW_HIDE) 
    EndFunc
    
    
    Func _STOP() ;Hier passiert was wenn der Button gedrückt wird
    ProcessClose($exe)
    RunAsWait($name,$do,$pw,0,@ComSpec  &  " /c " &"net stop " & $pr,"",@SW_HIDE)
    EndFunc
    Alles anzeigen
  • Button Farbe Ändern wenn ein Prozess läuft

    • sccssf
    • 10. November 2016 um 14:55
    Zitat von Oscar

    Wenn Du das flackern verhindern willst, dann benutze einfach eine zusätzliche Variable, um abzufragen, ob der Status bereits geändert wurde:

    Dann brauchst Du den zusätzlichen Sekunden-Sleep nicht und kannst sogar den Sleep in der Endlosschleife verringern (falls da noch mehr passieren soll).

    Hallo Oskar,

    brauche zwar nicht mehr in meiner Schleife aber man kann ja nie wissen.

    Spoiler anzeigen
    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <MsgBoxConstants.au3>
    
    
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Global $iExistCheck = True
    
    
    $Form1 = GUICreate("Serverüberwachung", 348, 155, 192, 124)
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    GUICtrlSetOnEvent(-1,"_Exit")
    $helpmenu = GUICtrlCreateMenu("?")
    $Info = GUICtrlCreateMenuItem("Version",$helpmenu)
    GUICtrlSetOnEvent(-1,"_showInfo")
    $wachen = GUICtrlCreateButton("", 8, 16, 100, 100)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0x00FF00)
    $reset = GUICtrlCreateButton("Reset-Start", 124, 16, 105, 100,1, $WS_EX_DLGMODALFRAME)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0x4452F0)
    GUICtrlSetOnEvent(-1,"_RESET")
    $stopen = GUICtrlCreateButton("STOP", 240, 16, 100, 100,1, $WS_EX_DLGMODALFRAME)
    GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0xe9f01a)
    GUICtrlSetOnEvent(-1,"_STOP")
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    TraySetOnEvent( -7, '_Restore')
    
    
    
    
    While Sleep(10)
    	If ProcessExists("notepad.exe") Then
    		If Not $iExistCheck Then
    			$iExistCheck = True
    			GUICtrlSetData($wachen, "läuft")
    			GUICtrlSetBkColor($wachen, 0x00FF00)
    		EndIf
    	Else
    		If $iExistCheck Then
    			$iExistCheck = False
    			GUICtrlSetData($wachen, "läuft nicht")
    			GUICtrlSetBkColor($wachen, 0xFF0000)
    		EndIf
    	EndIf
    WEnd
    
    
    Func _showInfo()
                MsgBox (0,"Info","Version 1.3 "&@CRLF&"Stand 09.11.2016"&@CRLF& "SCCSSF",5)
    EndFunc
    
    
    Func _Exit()
        Exit
    EndFunc
    
    
    Func _Minimize()
        TraySetState(1)
        GUISetState(@SW_HIDE)
    EndFunc
    
    
    Func _Restore()
        TraySetState(2)
        GUISetState(@SW_SHOW)
    EndFunc
    
    
    Func _RESET() ;Hier passiert was wenn der Button gedrückt wird
    ProcessClose("notepad.exe")
    RunAsWait("user","domain","passwort",0,@ComSpec  &  " /c " &'net stop "Autostart"',"",@SW_HIDE)
    RunAsWait(""user","domain","passwort",0,@ComSpec  &  " /c " &'net start "Autostart"',"",@SW_HIDE) 
    EndFunc
    
    
    Func _STOP() ;Hier passiert was wenn der Button gedrückt wird
    ProcessClose("notepad.exe")
    RunAsWait("user","domain","passwort",0,@ComSpec  &  " /c " &'net stop "Autostart"',"",@SW_HIDE)
    EndFunc
    Alles anzeigen


    Jetzt nur noch die Frage Zweizeiliges Button Beschriftung.

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™