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

Beiträge von MojoeB

  • Email empfang

    • MojoeB
    • 5. Juli 2022 um 16:54

    funkey die Antwort ist Exchange oO kann auch sein das ich falsch liege und wenn die Antwort nicht passt dann muss ich da in der IT nachfragen.

    weil mein Outlook zeigt mir nicht an über was er es empfängt ob pop3, imap...


    water

    ja mit Outlook wollte es aber wenn möglich Out tag halten.

    Es soll einen bestimmten email Account im Blick haben und es weiterleiten in die Zentrale (kein email programm), aber ein Programm wo die mail dann weiter automatisiert verarbeitet wird.

    da der Account auf mehreren Rechnern in Outlook zu finden ist soll es out tag bleiben.

    Wie gesagt wenn nicht anders möglich dann gerne auch so.

  • Email empfang

    • MojoeB
    • 5. Juli 2022 um 14:30

    ehm.. ein Server eben. :) smtp im Unternehmen, kein öffentlicher.

    Ich würde gerne deine Frage beantworten aber ich versteh die frage nicht so richtig ->Postfach?

  • Email empfang

    • MojoeB
    • 5. Juli 2022 um 14:10

    Hallo zusammen

    Mal eine Grundlegende Frage, hat schon einmal jemand eine Email vom SMTP-Server über ein Autoit-Script empfangen?

    Wenn ja kann mir jemand Ratschläge geben wie man das macht?

    Emails schicken über smtp Server ist nicht schwer, Empfangen vielleicht um so mehr?

    Würde gerne ein Postfach abfragen und die Mails die ankommen weiter als nur reine TEXT form weiterleiten, ohne das html form mit übernommen wird.

  • Editfeld updaten

    • MojoeB
    • 27. Juni 2022 um 20:55

    irgendwie wird außeracht gelassen das er meine Funktionen einfach benutzen kann.

    Es funktioniert.

    Grad mal aus POST #18 deinen Code kopiert meine funktionen reingesetzt und das script leicht verändert.

    sieh :

    C
    ; Script Start - Add your code below here
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPIFiles.au3>
    #include "Services.au3"
    #include <GDIPlus.au3>
    #include <GuiCtrlSetOnHover_UDF.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WinApi.au3>
    #include <MsgBoxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StringConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <date.au3>
    #include <EditConstants.au3>
    
    
    
    Global $ROUNDES = 20, $LastHwnd = 0
    Global $LastHwnd
    Global $GUIBKCOLOR = 0x738599
    Global $SubBack = 0xEAF0E2
    Global $nMSG
    
    ;MAINLOGIC
    global $Form1 = GUICreate("TEST GUI", 173, 126, 192, 124)
    global $Button1 = GUICtrlCreateButton("Button1", 16, 24, 75, 25)
    GUISetState(@SW_SHOW)
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
             Case $Button1
                _form3()
    
        EndSwitch
    WEnd
    ;Form3 Config1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _Form3()
        Local $file = "C:\Program Files\Mozilla Firefox\confs\firefox_ext.cfg" ; für dich reaktiviert die Variable kannst du auch Global setzten wenn es dein einziges $file ist aber dann außerhalb der funktion _Form3
        local $Form3 = GUICreate("Subform", 450, 425, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME)) ;Creates the GUI window
        local $iEdit = GUICtrlCreateEdit('' & @CRLF & "Another Line", 0, 0, 500, 400, $ES_WANTRETURN + $WS_VSCROLL + $ES_AUTOVSCROLL + $ES_MULTILINE + $WS_TABSTOP)
        local $hButton = GUICtrlCreateButton("Speichern", 160, 400, 107, 25, $WS_GROUP)
            fileToedit($file, $iEdit);  1. öffnet datei 2. liest die datei, 3. füllt das Edit fenster 4. schließt die datei.
          GUICtrlSetBkColor(-1, $SubBack)
          GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
          GUICtrlSetLimit(-1, 0xFFFFFF)
          ControlClick($Form3, "", $iEdit)
          GUISetState(@SW_SHOW) ;Shows the GUI window
          
     While 2
        local $mMsg = GUIGetMsg()
        Switch $mMsg
        Case $GUI_EVENT_CLOSE
          GUIDelete($Form3)
          GUISetState(@SW_ENABLE, $Form3)
          Return
    
          Case $hButton
              savefile($file, $iEdit);1. list das Edit feld aus, 2.öffnet das file im Overridemode(2) 3. überschreibt den Dateiinhalt mit dem ausgelesenen edit feld, bestätigt das mit einer msgbox. und schließt die Datei wieder.
        EndSwitch
      WEnd
     EndFunc
     
     Func savefile($file_, $edit_)
        Local $read, $ofile
        If FileExists($file_) = 1 Then
            $read = GUICtrlRead($edit_, 1)
            $ofile = FileOpen($file_, 2); öffne das File aber in den Overidemode
            If FileWrite($ofile, $read) = 1 Then
                 MsgBox(0,"Fertig!",$file_ & " |.. wurde gespeichert!");msgbox mit in die funkiton gesetzt auser du magst die auserhalb dann klammer die zeile aus.
                FileClose($ofile)
            ElseIf 0 Then
                ConsoleWrite('Fehler beim beschreiben der Datei.' & @CRLF)
            EndIf
        Else
            ConsoleWrite('Datei exsistiert nicht.' & @CRLF)
        EndIf
    EndFunc 
        Func fileToedit($file_, $edit_)
        Local $fopen, $read
        If FileExists($file_) = 1 Then
            $fopen = FileOpen($file_)
            $read = FileRead($file_)
            GUICtrlSetData($edit_, $read)
            FileClose($fopen)
            Return 1
        ElseIf 0 Then
            ConsoleWrite($file_ & '<-> ' & 'konnte nicht gefunden werden!' & @CRLF)
            Return -1
        EndIf
    EndFunc   ;==>fileToedit
    Alles anzeigen

    Edit habs nochmal auf dich angepasst.

    die unnötigen stellen weggemacht und die Änderung kommentiert.

    Du solltest mit copie pase direkt loslegen können.

  • Editfeld updaten

    • MojoeB
    • 27. Juni 2022 um 08:45

    deine GUIS habe ich in Array gepackt weil ich es leichter finde.

    und wenn du genau hinschauen würdest du erkennen was grundlegend anders an meinem Code ist. ich benutze nur 1 While schleife für alle deine guis,.

    Ich lasse die guis ganz normal in einer Funktion erstellen blos das die elemente eingekachelt sind und direkt als array gesichert (_arrayadd()) werden.

    Damit du weitere Details hast ob das nun im array an 1 oder 2 stelle dein Configbutton ist wird in der zweiten spalte des GUI arrays das Control ausgelesen welche dir deine vergebenen daten anzeigt.

    Die erste spalte sind dann die Controlid selber.

    Man muss es nicht machen aber ich dachte vielleicht verstehst du dann besser, du musst dich auch schon ein klein wenig mit der Materie beschäftigen.

    Vor der While schleife, lasse ich die Guis durch die Funktion erstellen. Der Rückgabe wert wird dann mit Arraydisplay kannst du dir anzeigen lassen was alles im Array ist.

    zwischen zeile 28 und 32 weiße ich die handels der fenster, halt die ControlIDs in ein neues arrays hinzu um es in der While schleife dann einfacher zu erkennen was zu gui 1(handel) oder 2(handel) gehört.

    Code
    Global $gui_02 = _Form3(0xEAF0E2);Form3 ist in der Funktion schon Hide + 2darray wird erstell
    Global $gui_01 = RBoxCreate("1", 150, 100, 'C:\Windows\Temp\hg.jpg', 0x738599) ; ist in der funktion SHOW+ 2darray wird erstllt.
    _arraydisplay($gui_02, '$gui_02');so könntest du das array anzeigen lassen.
    
    sieh:
    Global $gui_01_buttons[] = [$gui_01[1][0], $gui_01[4][0]]<- hier sind die Button aus gui 1 drinnen ;Config und dein besonders X was ich cool finde   habe das noch nie so gelöst.
    Global $gui_02_buttons[] = [$gui_02[2][0]]<- hier sind die Button aus gui 2 drinnen ;speichern
    Global $gui_02_edit[] = [$gui_02[1][0]]<- hier sind die Editfeld aus gui 2 drinnen
    
    nun While schleife beachten, nun gehen wir nach der reihe,
    while
    switch  
    Case handel 1;fenter 1
    switch
    case gui 1 button[0] ;X button
    ;funktion 
    case gui 1 button[1] ; config button
    ;funktion
    ;funktion
    ;funktion
    endswitch
    Case  hande2 1;fenter 2
    switch 
    case $GUI_EVENT_CLOSE ; X button von handel 2
    ;funktion
    ;funktion
    case gui 2 button[0] ; speicher button
    ;funktion
    Alles anzeigen
    Code
    Func element_list($array, $aArray01, $iO)
        Local $iCount = UBound($array)
        Local $a2Dresult[$iCount][$iO]
        For $i = 0 To $iCount - 1 Step 1
            $a2Dresult[$i][0] = $array[$i]
            $a2Dresult[$i][1] = $aArray01[$i]
    ;~         $a2Dresult[$i][2] = $i
        Next
        Return $a2Dresult
    EndFunc   ;==>element_list
    fügt nur das Array in der Gui die ich erstellen lasse zusammen.
    Alles anzeigen
    Code
    Diese Funktion: 
    Func ShowONorOFF($gui1, $gui2, $int)
        If $int = 1 Then
            GUISetState(@SW_SHOW, $gui1)
            GUISetState(@SW_HIDE, $gui2)
        EndIf
        If $int = 0 Then
            GUISetState(@SW_SHOW, $gui2)
            GUISetState(@SW_HIDE, $gui1)
        EndIf
    EndFunc   ;==>ShowONorOFF
    Damit kannst du deine Fenster ein und ausblenden und gleichzeitig Fenster 2 wieder einblenden  lassen einfach das Handel und den $int  bestimmen.
    Alles anzeigen
    Code
    Mit dieser Funktion wird die Datei wenn vorhanden, in das Edit feld eingelesen.
    
    Func fileToedit($file_, $edit_)
        Local $fopen, $read
        If FileExists($file_) = 1 Then
            $fopen = FileOpen($file_)
            $read = FileRead($file_)
            GUICtrlSetData($edit_, $read)
            FileClose($fopen)
            Return 1
        ElseIf FileExists($file_) = 0 Then
            ConsoleWrite($file_ & '<-> ' & 'konnte nicht gefunden werden!' & @CRLF)
            Return -1
        EndIf
    EndFunc   ;==>fileToedit
    Alles anzeigen
    Code
    Func savefile($file_, $edit_)
        Local $read, $ofile
        If FileExists($file_) = 1 Then
            $read = GUICtrlRead($edit_, 1)
            $ofile = FileOpen($file_, 2); öffne das File aber in den Overidemode
            If FileWrite($ofile, $read) = 1 Then
                ConsoleWrite('Inhalt ---------------|' & @CRLF & $read & @CRLF)
                ConsoleWrite('Datei abgeändert..' & @CRLF)
                FileClose($ofile)
            ElseIf 0 Then
                ConsoleWrite('Fehler beim beschreiben der Datei.' & @CRLF)
            EndIf
        Else
            ConsoleWrite('Datei exsistiert nicht.' & @CRLF)
        EndIf
    EndFunc   ;==>savefile
    
    ist quasi das selbe prinzip wie Moombas beschrieben hat.
    Alles anzeigen
  • Editfeld updaten

    • MojoeB
    • 26. Juni 2022 um 21:59

    nein mein Code funktioniert aber ich kannte deine

    #include <GuiCtrlSetOnHover_UDF.au3>

    nicht, deshalb hab ich sie mir aus dem netz gezogen und dort heißt diese GuiCtrlOnHover.au3

    benenne Zeile 6 einfach in
    #include <GuiCtrlSetOnHover_UDF.au3>

  • Editfeld updaten

    • MojoeB
    • 26. Juni 2022 um 00:47
    C
    ; includes ---------------------------------------------------------------------
    #include-once
    ;#include "GUIBkImage.au3"
    #include "Services.au3"
    #include <GDIPlus.au3>
    #include <GuiCtrlOnHover.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WinApi.au3>
    #include <MsgBoxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StringConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <date.au3>
    #include <EditConstants.au3>
    #include <array.au3>
    #RequireAdmin
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    ;declaration ------------------------------------------------------------------
    ;GUI Variables
    Global $WMAC = ""
    Global $testfile = @ScriptDir & '/test11.txt'
    Global $gui_01 = RBoxCreate("1", 150, 100, 'C:\Windows\Temp\hg.jpg', 0x738599)
    Global $gui_02 = _Form3(0xEAF0E2)
    Global $handels[] = [$gui_01[0][0], $gui_02[0][0]]
    ;Buttons Variables
    Global $gui_01_buttons[] = [$gui_01[1][0], $gui_01[4][0]]
    Global $gui_02_buttons[] = [$gui_02[2][0]]
    Global $gui_02_edit[] = [$gui_02[1][0]]
    ; processing ---------------------------------------------------------------------------------------------
    While (1)
        Global $amsg = GUIGetMsg($GUI_EVENT_ARRAY)
        Switch $amsg[1]
            Case $handels[0]
                Switch $amsg[0]
                    Case $gui_01_buttons[0] ;X
                        Exit
                    Case $gui_01_buttons[1] ;CONFIG
                        ShowONorOFF($handels[1], $handels[0], 1)
                        fileToedit($testfile, $gui_02_edit[0])
                        ControlClick('', '', $gui_02_edit[0])
                EndSwitch
            Case $handels[1]
                Switch $amsg[0]
                    Case $GUI_EVENT_CLOSE
                        GUICtrlSetData($gui_02_edit[0], '')
                        ShowONorOFF($handels[1], $handels[0], 0)
                    Case $gui_02_buttons[0]
                        savefile($testfile, $gui_02_edit[0])
                EndSwitch
        EndSwitch
    
    WEnd
    ;FunctionCalls;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func fileToedit($file_, $edit_)
        Local $fopen, $read
        If FileExists($file_) = 1 Then
            $fopen = FileOpen($file_)
            $read = FileRead($file_)
            GUICtrlSetData($edit_, $read)
            FileClose($fopen)
            Return 1
        ElseIf FileExists($file_) = 0 Then
            ConsoleWrite($file_ & '<-> ' & 'konnte nicht gefunden werden!' & @CRLF)
            Return -1
        EndIf
    EndFunc   ;==>fileToedit
    
    
    Func savefile($file_, $edit_)
        Local $read, $ofile
        If FileExists($file_) = 1 Then
            $read = GUICtrlRead($edit_, 1)
            $ofile = FileOpen($file_, 2)
            If FileWrite($ofile, $read) = 1 Then
                ConsoleWrite('Inhalt ---------------|' & @CRLF & $read & @CRLF)
                ConsoleWrite('Datei abgeändert..' & @CRLF)
                FileClose($ofile)
            ElseIf 0 Then
                ConsoleWrite('Fehler beim beschreiben der Datei.' & @CRLF)
            EndIf
        Else
            ConsoleWrite('Datei exsistiert nicht.' & @CRLF)
        EndIf
    EndFunc   ;==>savefile
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;GUIs;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _Form3($color)
        Local $array[0]
        Local $rArray[0]
        Local $guiArray[0]
        _ArrayAdd($array, GUICreate("Subform", 450, 425, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_THICKFRAME)))   ;Creates the GUI window
        _ArrayAdd($rArray, GUICtrlRead($array[0], 1))
        _ArrayAdd($array, GUICtrlCreateEdit('', 0, 0, 500, 400, $ES_WANTRETURN + $WS_VSCROLL + $ES_AUTOVSCROLL + $ES_MULTILINE + $WS_TABSTOP))
        _ArrayAdd($rArray, GUICtrlRead($array[1], 1))
        _ArrayAdd($array, GUICtrlCreateButton("Speichern", 160, 400, 107, 25, $WS_GROUP))
        _ArrayAdd($rArray, GUICtrlRead($array[2], 1))
        GUICtrlSetBkColor($array[2], $color)
        GUICtrlSetResizing($array[2], $GUI_DOCKAUTO)
        GUICtrlSetLimit($array[2], 0xFFFFFF)
        GUISetState(@SW_HIDE)
        $guiArray = element_list($array, $rArray, 3)
        Return $guiArray
    EndFunc   ;==>_Form3
    
    
    Func RBoxCreate($Title, $width, $height, $img, $color, $left = -1, $top = -1, $show = 1)
        Local $array[0]
        Local $rArray[0]
        Local $guiArray[0]
        $Title = $Title & ' '
        _ArrayAdd($array, GUICreate($Title, $width, $height, $left, $top, $WS_POPUP))
        _ArrayAdd($rArray, GUICtrlRead($array[0], 1))
        GUICtrlCreatePic($img, 0, 25, 920, 660)
        GUICtrlSetState(-1, $GUI_DISABLE)
        GUISetBkColor($color, $array[0])
        _ArrayAdd($array, GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)) ;button
        _ArrayAdd($rArray, GUICtrlRead($array[1], 1))
        GUICtrlSetCursor($array[1], 0)
        GUICtrlSetBkColor($array[1], -2)
        GUICtrlSetFont($array[1], 15, 800)
        GUICtrlSetColor($array[1], 0x555555)
        _ArrayAdd($array, GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG))
        _ArrayAdd($rArray, GUICtrlRead($array[2], 1))
        GUICtrlSetFont($array[2], 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($array[2], -2)
        _ArrayAdd($array, GUICtrlCreateGraphic(0, 0, $width, 25))   ;Grafik
        _ArrayAdd($rArray, GUICtrlRead($array[3], 1))
        GUICtrlSetState($array[3], $Gui_DISABLE)
        _ArrayAdd($array, GUICtrlCreateButton("CONFIG", 10, 55, 100, 20))
        GUICtrlSetTip($array[4], "Config anpassen")
        _ArrayAdd($rArray, GUICtrlRead($array[4], 1))
        If $show = 1 Then GUISetState(@SW_SHOW, $array[0])
        $guiArray = element_list($array, $rArray, 3)
        Return $guiArray
    EndFunc   ;==>RBoxCreate
    
    Func element_list($array, $aArray01, $iO)
        Local $iCount = UBound($array)
        Local $a2Dresult[$iCount][$iO]
        For $i = 0 To $iCount - 1 Step 1
            $a2Dresult[$i][0] = $array[$i]
            $a2Dresult[$i][1] = $aArray01[$i]
    ;~         $a2Dresult[$i][2] = $i
        Next
        Return $a2Dresult
    EndFunc   ;==>element_list
    
    Func ShowONorOFF($gui1, $gui2, $int)
        If $int = 1 Then
            GUISetState(@SW_SHOW, $gui1)
            GUISetState(@SW_HIDE, $gui2)
        EndIf
        If $int = 0 Then
            GUISetState(@SW_SHOW, $gui2)
            GUISetState(@SW_HIDE, $gui1)
        EndIf
    EndFunc   ;==>ShowONorOFF
    Alles anzeigen

    :saint:


    ich weiß nicht was du mit

    Code
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
        If Not IsArray($cGui) Then
            Return 0
        EndIf
          If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
          If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc

    erreichen möchtest.

  • Editfeld updaten

    • MojoeB
    • 25. Juni 2022 um 21:25

    was ich grad sehe

    C:\Program Files\ <- versuch mal scrite mit admin zu starten(per kontextmenu) und dann dein skript auszuführen.

    $nMSG kommt auch 2 mal vor einmal als global und einmal als local

  • List View

    • MojoeB
    • 25. Juni 2022 um 14:56

    Oscar :) du bist halt pro.

    sehr nice die Lösung ;)

  • Editfeld updaten

    • MojoeB
    • 25. Juni 2022 um 14:55

    du hast in der func global variablen da sollten nur local rein

    deswegen geht es bestimmt nicht da du $file bestimmt öfter hast.

    nur eine Vermutung.

  • List View

    • MojoeB
    • 23. Juni 2022 um 19:16
    C
    #include <File.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <Timers.au3>
    Global $aSpeicher = ''
    $gui = GUICreate("gui", 880, 759, -1, -1, -1, -1)
    $input = GUICtrlCreateInput("C:\Program Files\", 20, 40, 462, 20, -1, $WS_EX_CLIENTEDGE)
    $prog = GUICtrlCreateProgress(500, 40, 349, 20, -1, -1)
    $viewlist = GUICtrlCreateListView("", 20, 80, 836, 634, -1, $WS_EX_CLIENTEDGE)
    _GUICtrlListView_AddColumn($viewlist, "data", 430)
    GUISetState(@SW_SHOW, $gui)
    
    $aSpeicher = viewlist_f5($viewlist, GUICtrlRead($input), $prog, $aSpeicher)
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
        EndSwitch
        $iTimer = _Timer_GetIdleTime()
        Select
            Case $iTimer < 4000
            Case Else
                $aSpeicher = viewlist_f5($viewlist, GUICtrlRead($input), $prog, $aSpeicher)
        EndSelect
    WEnd
    
    
    Func viewlist_f5($aView_, $input, $progress_, $aSpeich = '')
        Local $sDir = $input
        GUICtrlSetData($progress_, 0)
        Local $i = 0, $op = 0
        Local $aArray = _FileListToArrayRec($sDir, "*||", $FLTAR_FOLDERS, $FLTAR_RECUR, $FLTAR_SORT) ;, $FLTAR_RECUR, $FLTAR_SORT)
    
        If $aSpeich = '' Then
            _GUICtrlListView_DeleteAllItems($aView_)
            If UBound($aArray) = 0 Then
    ;~             ConsoleWrite('keine Ordner gefunden!'&@CRLF)
            Elseif UBound($aArray) > 0 Then
            ConsoleWrite('Tabelle wird einfügt.' & @CRLF)
    
            For $u = 1 To UBound($aArray) - 1 Step 1
                $wert = progressbar_berechnen($aArray, $u)
                GUICtrlSetData($progress_, $wert)
                $sPfade = $aArray[$u]
                GUICtrlCreateListViewItem($sPfade, $aView_)
            Next
    
            GUICtrlSetData($progress_, 100)
            ConsoleWrite('Tabelle wurde eingefügt!' & @CRLF)
            Endif
            Return $aArray
        EndIf
    
        If IsArray($aSpeich) = 1 Then
            If UBound($aSpeich) = UBound($aArray) Then
                For $o = 0 To UBound($aSpeich) - 1 Step 1
                    If $aSpeich[$o] <> $aArray[$o] Then
                        $i = 1
                        ExitLoop
                    EndIf
                Next
            ElseIf UBound($aSpeich) <> UBound($aArray) Then
                $i = 1
            EndIf
    
            If $i = 1 Then
                ConsoleWrite('Liste wird aktuallsiert.' & @CRLF)
                _GUICtrlListView_DeleteAllItems($aView_)
                For $u = 1 To UBound($aArray) - 1 Step 1
                    $wert = progressbar_berechnen($aArray, $u)
                    GUICtrlSetData($progress_, $wert)
                    $sPfade = $aArray[$u]
                    GUICtrlCreateListViewItem($sPfade, $aView_)
                Next
    
                GUICtrlSetData($progress_, 100)
                ConsoleWrite('Liste wurde aktuallsiert!' & @CRLF)
            EndIf
        EndIf
        Return $aArray
    EndFunc   ;==>viewlist_f5
    Func progressbar_berechnen($array, $i)
        Local $wert
        $wert = $i / UBound($array) * 100
        Return $wert
    EndFunc   ;==>progressbar_berechnen
    Alles anzeigen

    meinst du so?

    Edit bei langen listen :

    Code
    #include <Timers.au3>
    $iTimer = _Timer_GetIdleTime()
    
    Select
    Case $iTimer < 3000
    Case Else
    $aSpeicher = test($viewlist, $aSpeicher)
    EndSelect


    so einbauen sonst kannst du keine Controls mehr benutzen weil er sonst immer wieder die Namen vergleicht ob sich du einen Ordner umbenannt hast.

    solange du deine Maus bewegst wird er das somit nicht mehr tun. erst nach 3 sec idle tastatur und maus.

    Edit :

    ^^ich habe nochmal umgebaut nun mit Progress bar um sichtbar zu machen ob auch alle Ordner geladen sind und eine Inputbox damit du den Pfad auf der gut bestimmen kannst.

  • MySQL/MariaDB

    • MojoeB
    • 21. Juni 2022 um 14:31

    Hallo Kanashius,

    das mit dem Hash war auch nur eine Idee, es würde ja schon eine Random Zahl reichen die ich in eine Extra Tabelle lege, und immer wenn ich eine Änderung mache die Zahl random ausgetauscht wird und als $var im Script dann gespeichert wird, dann kann ich diese zahlen vergleichen und wenn diese Zahl eine andere ist als in der DB, dann aktualisiere meine Listen in der Viewlist, und passe die Zahl der Zahl in der DB an. das ist quasi das gleiche wie zu deinem Punkt 1. beschrieben hast. Aber meine Standart Tabellen wollte ich jetzt eigentlich nicht unbedingt verändern. Deshalb die Idee mit einfach einer neuen Tabelle aber in der selben Datenbank die nur diesen einen Eintrag besitzt.


    Zitat von Kanashius

    eine Messagequeue o.ä. vorzuschalten.

    Du meinst direkt in der Datenbank?
    Da bin ich noch zu ungeübt :). Oder meinst du die While schleife in autoit.

    Zitat von Kanashius

    Zu 2.:

    Es macht vmtl. Sinn, die Aktualisierung nur laufen zu lassen, wenn das Fenster im Fokus ist, bzw. wenn es nicht im Fokus ist, zu checken, ob es sichtbar ist (Ansätze dafür: https://www.autoitscript.com/forum/topic/15…ndow-is-on-top/). Ggf. dann noch ein check auf IDLE.

    genau das habe ich am Anfang auch gedacht, wusste bloß nicht wie es umsetzte ich schaue es mir heute Abend den link mal genauer an.
    Danke schon mal für die unterstützenden worte :).

    EDIT :@ Kanashius, habe den ersten link in deinem schreiben erst grad entdeckt ^^ das sieht vielversprechend aus

  • MySQL/MariaDB

    • MojoeB
    • 21. Juni 2022 um 09:38

    So Leute habe nun einen Server laufen wo ich auch raufkomme ^^

    Mein Script läuft auch mit dem Verbindung auf die MariaDB etc. bearbeiten hinzufügen geht alles.

    In meiner GUI werden auch Listen angezeigt aus der DB, diese werden im Zeitinervall über $iTimer = _Timer_GetIdleTime() ausgelöst.

    Das ist bei dem Programm 1 auch kein Problem da die Anwender nur selten am PC sind, aber Programm 2 wird ständig benutzt das da entweder nur eine sehr kurze $iTimer = _Timer_GetIdleTime() funktionieren würde.

    Aber dann hat man das Problem das die GUI sehr oft aktualisiert und dann flackert, zu mindestens die sichtbaren Bereiche

    1. Da immer wieder die DB abgefragt wird und die komplette Liste neu ins array kommt und somit in die Viewlist neureingeladen wird, kann man das irgendwie umgehen sodass nur das element abgeändert wird das auch in der DB geändert wurde?

    2. Kann man die _Timer_GetIdleTime() evtl. auch nur auf das einzelne Programm/script beziehen und nicht auf den kompletten Rechner? Oder kann man irgendwie einen hash von der DB auf der ich eingeloggt bin erzeugen und wenn dieser sich ändert dann erst wieder eine Aktualisierung stattfindet?


    das mit dem hash wäre mir am liebsten, bei meiner ftp Lösung hatte das damals wunderbar funktioniert, jedoch habe ich ja keine einzelne Datei wo ich den hash erstellen könnte.

    :Face:

    EDIT : jetzt wo ich so darüber nachdenke, könnte ich ja einfach in der DB eine extra Tabelle machen mit einem hash der sich jedes Mal ändert sobald eine Änderung oder neu Eingabe in die DB hinzukommt.

    oder habt Ihr dennoch einen besseren vorschlag?

  • Diskrete Fouriertransformation (DFT)

    • MojoeB
    • 9. Juni 2022 um 14:50

    auch wenn ich nicht weiß was zu was genau das gut sein soll :thumbup::thumbup::thumbup:

    Ihr seid einfach klüger als ich ^^

  • Zeichensatz-Probleme beim Schreiben in MariaDB

    • MojoeB
    • 27. Mai 2022 um 03:21

    ich kenn mich nicht aus mit UTF-8... aber wie sind den deine Tabellenspalten formatiert in der DB.

    Ich glaube Velted hat das hier gemeint :

    Zitat von robbytobi

    ;$sSQLstring enthält ein gültiges SQL-Statement, das wie folgt konvertiert werden muß: $sSQLstringUTF8 = _WinAPI_WideCharToMultiByte($sSQLstring,65001) ;Konvertierung ConsoleWrite($sSQLstringUTF8&@CRLF) ;Ausgabe an Konsole $oQueryResult = _SQLQuery($oConn, $sSQLstringUTF8) ;Ausgabe an DB

    habe auch schon mit rumgespielt bin aber auch zu keinem Ergebnis gekommen.

  • Guis Buggen in einander

    • MojoeB
    • 19. Mai 2022 um 21:32
    Zitat von BugFix

    - Array-Funktionen sind nicht nötig. Die Anzahl der Elemente sind bekannt, das Array kann somit mit erforderlicher Zahl deklariert und per Indexierung belegt werden.

    - Speichern der Ctrl-Namen ist nicht erforderlich, kann bei Bedarf über die ID abgefragt werden (s. hier: GuiCtrlInfo.au3)

    - Ich würde z.B. ein gemeinsames 2D-Array für hWnd und ID führen: [[hWnd_1,ID_1], [hWnd_1,ID_2],..,[hWnd_1,ID_n],[hWnd_2,ID_1], [hWnd_2,ID_2],..,[hWnd_2,ID_n]] , aber das ist Geschmackssache


    Hey Bugfix :) habs mir mal GuiCtrlInfo.au3 grad angesehen ich glaub das wird mir für die Zukunft eine menge zeit sparen :):thumbup:


    Zitat von autoBert

    Dieser "Mixed Mode" erfordert Konzentration und Disziplin.

    JA das hab ich gemerkt :D, danke für :thumbup:

  • Status von Fingerabdruckscanner (Windows Hello) ermitteln

    • MojoeB
    • 11. Mai 2022 um 11:07

    Nunja ich meine Manipulation,
    weil es ist eine Sicherheitsmaßname ist die zuständig die nur autorisierte Personen berechtigt.

    Wenn man das nun auslesen könnte, kann man den Fingerabdruck auch elektronisch speichern.

    Und immer wieder verwenden.

    Und somit die Sicherheitsmaßnahmen aushebeln. Wo ist dann der Sicherheitsaspekt ?

    Wie MS Windows Hello genau funktioniert, kann ich dir leider nicht sagen, das könnte nur MS.

    Vielleicht mit einem Gerät was nicht unter Windows Hello läuft.

    Diese sind aber auch nicht ganz billig & mehr für Türen gedacht.

    Zum teil müssen diese auch selbst programmiert werden.

    - AES Schlüssel festlegen.

    - Finger einscannen.

    - Zeit Schaltung ja/nein

    etc.

    Wie es mit einem Billig USB - teil aussieht kann ich dir nicht sagen.

  • Status von Fingerabdruckscanner (Windows Hello) ermitteln

    • MojoeB
    • 10. Mai 2022 um 17:40

    Ich weiß nicht was du machen möchtest aber ich glaube das fällt unter Manipulation.

    Ich denke nicht das hier dir jemand darauf antworten wird.

  • Guis Buggen in einander

    • MojoeB
    • 10. Mai 2022 um 17:20

    Ich glaube du rufst eine gui in der funktion gui auf.

    Ich habe dir mal ein kleines beispiel erstellt wie ich das mache um bei großen Projekten etwas die Übersicht zu wahren.

    Vielleicht hilft dir das.

    C
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    Global $01, $02
    $01 = gui()
    GUISetState(@SW_SHOW, $01)
    $02 = gui2()
    $handels = _array_handels()
    $btns = _array_btns()
    $testarray2 = LESE_CTRL_($btns)
    
    _ArrayDisplay($handels, 'test handels')
    _ArrayDisplay($testarray2, 'test btns')
    
    
    While (1)
        $amsg = GUIGetMsg($GUI_EVENT_ARRAY)
        Switch $amsg[1]
            Case $handels[0]
                Switch $amsg[0]
                    Case $GUI_EVENT_CLOSE
                        Exit
                    Case $btns[0]
                        MsgBox(0, 'ÄÄ', 'GUI2 öffnen')
                        GUISetState(@SW_SHOW, $handels[1])
                EndSwitch
    
            Case $handels[1]
                Switch $amsg[0]
                    Case $GUI_EVENT_CLOSE
                        Exit
                    Case $btns[1]
                        MsgBox(0, 'ÄÄ', 'GUI1 öffnen und 2 schließen')
                        GUISetState(@SW_HIDE, $handels[1])
                        GUISetState(@SW_SHOW, $handels[0])
                EndSwitch
        EndSwitch
    WEnd
    
    Func gui()
        Local $array[0]
        Local $aNames[0]
        Local $aRead[0]
        _ArrayAdd($array, GUICreate("Form1", 574, 340, 192, 124))
        _ArrayAdd($aNames, 'HANDEL')
        _ArrayAdd($aRead, GUICtrlRead($array[0], 1))
        _ArrayAdd($array, GUICtrlCreateLabel("GUI 1", 48, 136, 32, 17))
        _ArrayAdd($aNames, 'LABEL')
        _ArrayAdd($aRead, GUICtrlRead($array[1], 1))
        _ArrayAdd($array, GUICtrlCreateButton("Button1", 256, 176, 137, 33))
        _ArrayAdd($aNames, 'BTN')
        _ArrayAdd($aRead, GUICtrlRead($array[2], 1))
        GUISetState(@SW_HIDE)
        $array = element_list($array, $aNames, $aRead, 4)
        Return $array
    EndFunc   ;==>gui
    
    Func gui2()
        Local $array[0]
        Local $aNames[0]
        Local $aRead[0]
        _ArrayAdd($array, GUICreate("Form2", 574, 340, 192, 124))
        _ArrayAdd($aNames, 'HANDEL')
        _ArrayAdd($aRead, GUICtrlRead($array[0], 1))
        _ArrayAdd($array, GUICtrlCreateLabel("GUI 2", 48, 136, 32, 17))
        _ArrayAdd($aNames, 'LABEL')
        _ArrayAdd($aRead, GUICtrlRead($array[1], 1))
        _ArrayAdd($array, GUICtrlCreateButton("Button2", 256, 176, 137, 33))
        _ArrayAdd($aNames, 'BTN')
        _ArrayAdd($aRead, GUICtrlRead($array[2], 1))
        GUISetState(@SW_HIDE)
        $array = element_list($array, $aNames, $aRead, 4)
        Return $array
    EndFunc   ;==>gui2
    
    
    
    
    Func element_list($array, $aArray01, $aArray02, $iO)
        $iCount = UBound($array)
        Local $a2Dresult[$iCount][$iO]
        For $i = 0 To $iCount - 1 Step 1
            $a2Dresult[$i][0] = $array[$i]
            $a2Dresult[$i][1] = $aArray01[$i]
            $a2Dresult[$i][2] = $aArray02[$i]
            $a2Dresult[$i][3] = $i
        Next
        Return $a2Dresult
    EndFunc   ;==>element_list
    
    
    Func _create_array_($array, $mArray, $string, $opt = 0)
        Local $cont[0]
        For $i = 0 To UBound($array) - 1 Step 1
            $sArray = $array[$i][1]
            If $sArray = $string Then
                _ArrayAdd($cont, $array[$i][0])
            EndIf
        Next
        If $opt = 1 Then
            For $i = 0 To UBound($mArray) - 1 Step 1
                _ArrayAdd($cont, $mArray[$i])
            Next
        EndIf
        Return ($cont)
    EndFunc   ;==>_create_array_
    Func _array_handels()
        Local $aArray[0]
        $aArray = _create_array_($02, '', 'HANDEL', 0)
        $aArray = _create_array_($01, $aArray, 'HANDEL', 1)
        Return $aArray
    EndFunc   ;==>_array_handels
    
    Func _array_btns()
        Local $aArray[0]
        $aArray = _create_array_($02, '', 'BTN', 0)
        $aArray = _create_array_($01, $aArray, 'BTN', 1)
        Return $aArray
    EndFunc   ;==>_array_btns
    
    
    
    
    Func LESE_CTRL_($array)
        Local $sArray[0]
        For $i = 0 To UBound($array) - 1 Step 1
            $string = $array[$i]
            _ArrayAdd($sArray, GUICtrlRead($array[$i], 1))
        Next
        Return $sArray
    EndFunc   ;==>LESE_CTRL_
    Alles anzeigen
  • Inutbox Variable mit ini-Datei abgleichen

    • MojoeB
    • 28. April 2022 um 16:04

    ich würde sagen so falsch liegst du nicht


    $sUSR_IN=GUICtrlRead( $USR_IN ) <- damit kommst du an deinen eingeben Wert

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™