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

Beiträge von alpines

  • Windows 10 Lizenz vorhanden?

    • alpines
    • 17. September 2018 um 15:51

    Hmm gut, beim Lesen hab ich mir gedacht "Wenn <Win10 -> dann upgraden".

  • _FileListToArray

    • alpines
    • 17. September 2018 um 15:50

    Das kommt darauf an wie du deine Schleifen implementierst.

    ExitLoop würde den Durchlauf der 2. Dimension unterbrechen und mit der Schleife in der 1. Dimension weiterarbeiten.

    ContinueLoop würde den Durchlauf der 2. Dimension unterbrechen aber nicht die aktuelle Schleifeniteration der 1. Dimension durchlaufen sondern erst die nächste.

    Die Zahl bei ExitLoop oder ContinueLoop gibt an auf welchem Level der Befehl stattfinden soll, dabei gilt ExitLoop = ExitLoop 1.

  • _FileListToArray

    • alpines
    • 17. September 2018 um 15:42
    Zitat von borsTiHD

    Trotzdem geht beim "Verstecken" meine Funktion in der Schleife alle, auch ungenutzten 2D Array Elemente durch.

    Prüf ob der Index leer ist und verwende ContinueLoop 2 bzw. ExitLoop.

    Zitat von borsTiHD

    Kann ich um diese Prozesse zu beschleunigen auch Dictionarys irgendwie einsetzen?

    Dictionaries haben algorithmisch eine generell kürzere Laufzeit als normale Arrayiterationen, allerdings wird sich dieser Unterschied bei < 100 überhaupt nicht bemerkbar machen.

    Und ich rede nur von der Zeit das Element zu suchen und anzusprechen.

    Springst du aus dem Array raus wenn du einen leeren Index findest (danach kommt ja vermutlich nichts mehr) dürftest du wesentlich schneller unterwegs sein als normal.

  • Windows 10 Lizenz vorhanden?

    • alpines
    • 17. September 2018 um 15:29
    Zitat von Bitnugger

    So...

    Ich dachte auch daran, aber warum nicht direkt @OSVersion?

    Sollte im BIOS ein 10 Key hinterlegt sein aber es ist 7 installiert, so kann man das mit deiner Variante auch nicht rausfinden.

    Aber wer hat im BIOS ein 10 Key und dann niedrigeres OS?

  • IniReadSection mit mehreren AutoIT Instanzen auf die selbe Datei?

    • alpines
    • 17. September 2018 um 13:43

    Ja WorkingDir heißt es, mein Fehler.

    Und es beendet sich einfach so? Versuch mal rauszufinden wo genau das Programm terminiert. Skripte sollten für gewöhnlich nicht sauber random crashen.

  • IniReadSection mit mehreren AutoIT Instanzen auf die selbe Datei?

    • alpines
    • 17. September 2018 um 13:22

    Ich nehme mal an dein @WorkingDirectory hat sich verändert, lass es dir mal in SciTE gestartet ausgeben und als Kompilat.

  • IniReadSection mit mehreren AutoIT Instanzen auf die selbe Datei?

    • alpines
    • 17. September 2018 um 12:45

    Da kann ich auch nur spekulieren, gibts denn irgendwo ein verstecktes Exit?

    Wenn AutoIt Skripte abstürzen oder hardcrashen dann schmeißen sie für gewöhnlich immer einen Fehlercode <> 0.

    Debug deinen Code einfach Zeile für Zeile und versuch herauszufinden wo es crasht.

  • IniReadSection mit mehreren AutoIT Instanzen auf die selbe Datei?

    • alpines
    • 17. September 2018 um 12:12
    Zitat von borsTiHD

    Ihr müsst wissen, die obigen Lösungen habe ich in einem größeren Zeitraum versucht und bin nie dahinter gekommen was egt genau falsch läuft.

    Wann genau beendet sich das Skript denn? Meine Vermutung wäre, dass du auf bestimmte Ressourcen zugreifst und das wegen dem veränderten WorkingDirectory (ist ja jetzt @TempDir) nicht funktioniert.

    Versuch mal die Dateien per FileRead zu lesen statt IniRead. Solange du permanent nichts in die Datei schreibst und so keine Inkonsistenzen entstehen, solltest du das Problem (der Zugriffsverweigerung) lösen können.

    Es kann sein, das IniRead die Datei sperrt.

  • _FileListToArray

    • alpines
    • 14. September 2018 um 19:45
    Zitat von Mikki

    Hab´s rausgefunden. Der Denkanstoß hat geholfen.

    Na dann poste uns doch das Skript damit du anderen Usern, die in Zukunft danach suchen könnten, damit aushelfen kannst. :)

  • _FileListToArray

    • alpines
    • 14. September 2018 um 18:51
    Zitat von Mikki

    Aber worauf willst du hinaus?

    Wenn das schon in [0] steht dann verwende das auch direkt, ist semantisch konsequenter.

    Ich hab allerdings dein Problem nicht wirklich verstanden, willst du die Abfrage die du gemacht hast für alle Dateiendungen vornehmen? Dann schieb deine Arrays in ein anderes Array und iteriere durch das.

  • _FileListToArray

    • alpines
    • 14. September 2018 um 17:56
    Zitat von Mikki

    For $i = 1 To UBound($aFileList_Source_erstellen_plaene_pdf) - 1

    Nebenbei bemerkt: Du fängst bei Index 1 an und läufst bis zum Ende indem du es ausrechnen lässt. Rate mal was im 0. Index steht.

  • Excel xlsx datei erstellen ohne Excel zu benutzen

    • alpines
    • 12. September 2018 um 15:30
    Zitat von djbeatstar

    wenn ich nun einen gazen haufen Daten (z.B. Die arbeitszeiten eines ganzen Jahres.) über ein AutoIt script in ein Exceldokument füttern will, dauert das über die "Offizielle" Excel.au3 UDF relativ lange. (je nach leistung des Rechners kann das zwischen 1 und 3 Minuten dauern.)


    Plain Text kann AutoIt um einiges Flotter einfach mal eben so schreiben, als ein Exceldokument. da sollte das ganze in einigen sekunden abgehakt sein.

    Das kann ich so nicht unterschreiben. Unter Umständen ist dein Code einfach schlecht, und deshalb so langsam.

  • Frage ObjCreate

    • alpines
    • 12. September 2018 um 11:10

    Dazu müsste es eine Funktionsreferenz vom Hersteller geben oder du versuchst die Methoden des COM-Objektes zu dumpen.

    OleView könnte helfen: https://bettersolutions.com/vba/visual-bas…ect-browser.htm https://msdn.microsoft.com/de-de/library/d0kh9f4c.aspx

  • OutlookExConstants

    • alpines
    • 10. September 2018 um 11:18

    Du musst auch schon das ganze Paket herunterladen, die Constants liegt bei: https://www.autoitscript.com/forum/files/file/381-outlookex/

  • _WinAPI_SetLayeredWindowAttributes, transparente Sektionen sind bei Windows 10 inaktiv, nicht bei Windows 7.

    • alpines
    • 9. September 2018 um 22:50

    Okay, nach ein bisschen rumgestochere habe ich das Problem gefunden. Offenbar sind die transparenten Bereiche in 7 klickbar und in 10 nicht.

    Da gibts aber einen "einfachen" Workaround. Zuerst habe ich versucht die Region des Controls auf seine eigentliche Region zu vergrößern aber das gelang mit nicht.

    Du kannst um das ganze rudimentär zu lösen die WM_LBUTTOMUP Nachricht registrieren und abfragen in welcher Position (auf welchen Button) geklickt wurde und dann die entsprechende Funktion ausführen.

    Aber da muss es doch bestimmt eine leichtere Methode geben...

  • _WinAPI_SetLayeredWindowAttributes, transparente Sektionen sind bei Windows 10 inaktiv, nicht bei Windows 7.

    • alpines
    • 9. September 2018 um 21:27
    Zitat von xTcisloVe

    Bringt leider nichts, komisch.

    Hmm, eigenartig. Ich setz mir mal fix 'ne Win10 VM auf und teste das dann mal drauf. Melde mich gleich.

  • _WinAPI_SetLayeredWindowAttributes, transparente Sektionen sind bei Windows 10 inaktiv, nicht bei Windows 7.

    • alpines
    • 9. September 2018 um 20:50

    Probier mal das ganze im Windows 7 Kompatibilitätsmodus auszuführen.

  • _WinAPI_SetLayeredWindowAttributes, transparente Sektionen sind bei Windows 10 inaktiv, nicht bei Windows 7.

    • alpines
    • 9. September 2018 um 20:30

    Guck dir doch das Bild an welches ich gepostet hab. Bei mir sind die Controls vertikal mittig und bei dir scheinbar oben links.

  • _WinAPI_SetLayeredWindowAttributes, transparente Sektionen sind bei Windows 10 inaktiv, nicht bei Windows 7.

    • alpines
    • 9. September 2018 um 19:56

    Dass bei dir die Controls oben sind kann nichts gutes heißen, ich verwende W7 x64 also kann ich auch nur spekulieren woran es liegt.

    Hast du im Skript noch was geändert seitdem du es gepostet hast?

    Dateien

    1.png 1,17 MB – 0 Downloads
  • _WinAPI_SetLayeredWindowAttributes, transparente Sektionen sind bei Windows 10 inaktiv, nicht bei Windows 7.

    • alpines
    • 9. September 2018 um 19:43

    Beide Radios, sowie die Labelbuttons klappen ohne Probleme mit dem geposteten Script von mir.

    cmd.jpg liegt im selben Ordner und beide MsgBoxen tauchen auf. 3.3.14.2

    AutoIt
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>
    #include <GuiTab.au3>
    #include <Array.au3>
    #include <EditConstants.au3>
    Opt("GUIOnEventMode", 1)
    Local $hMain[8]
    Local $GUI, $GUIChild
    Local $aDropFiles
    _GUIMain()
    
    While 1
    
    WEnd
    
    Func _GUIMain()
    $hMain[0] = 7
    $GUI = GUICreate("GUIMain",1245,800,-1,-1,$WS_MAXIMIZEBOX,$WS_EX_ACCEPTFILES+$WS_EX_LAYERED)
    GUICtrlCreatePic(@scriptdir&"\"&"cmd.jpg",0,0,1245,800,$WS_CLIPSIBLINGS)
        GUICtrlSetState(-1,$GUI_DISABLE)
    $GUIChild = GUICreate("GUIMain",1245,800,-1,-1,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD), $GUI)
        GUISetFont(12, 0, 0, 0, $GUIChild, 5)
        GUISetBkColor(0x605f5f, $GUIChild)
        GUICtrlSetDefColor(0xffffff, $GUIChild)
        GUICtrlSetDefBkColor(0x605f5f, $GUIChild)
        GUISetIcon(@ScriptDir & "\tools\icon.ico", $GUIChild)
    GUICtrlCreateLabel("",10,195,400,125,-1,$WS_EX_CLIENTEDGE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("aUserDir[1]",15,200,390,25,BitOr($SS_CENTER,$SS_CENTERIMAGE),-1)
        GUICtrlSetFont(-1,15,0,0,0,5)
    $hMain[1] = GUICtrlCreateLabel("aUserDir[1]",15,240,390,25,$SS_CENTERIMAGE,$WS_EX_CLIENTEDGE)
        GUICtrlSetFont(-1,13,0,0,0,5)
    $hMain[2] = GUICtrlCreateLabel("Drag & Drop or Browse to change.",15,280,260,25,$SS_CENTERIMAGE,$WS_EX_CLIENTEDGE)
        GUICtrlSetState(-1,BitOr($GUI_SHOW,$GUI_ENABLE,$GUI_DROPACCEPTED))
        GUICtrlSetFont(-1,14,0,0,0,5)
    $hMain[3] = GUICtrlCreateLabel("Browse",280,280,60,25,$SS_CENTERIMAGE+$SS_CENTER,$WS_EX_CLIENTEDGE)
    $hMain[4] = GUICtrlCreateLabel("Exit",1110,730,120,30,$SS_CENTERIMAGE+$SS_CENTER,$WS_EX_CLIENTEDGE)
    $hMain[5] = GUICtrlCreateGroup("Open Question",125,362,109,81,-1,-1)
    $hMain[6] = GUICtrlCreateRadio("On",157,390,53,20,-1,-1)
    $hMain[7] = GUICtrlCreateRadio("Off",157,416,53,20,-1,-1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    For $i = 1 To $hMain[0]
        DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($hMain[$i]), "wstr", 0, "wstr", 0)
        GUICtrlSetColor(-1, 0xFFFFFF)
    Next
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES')
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $GUI)
    GUISetOnEvent($GUI_EVENT_DROPPED, "_Dropped", $GUIChild)
    GUICtrlSetOnEvent($hMain[3], '_Browse')
    GUICtrlSetOnEvent($hMain[4], '_Exit')
    _WinAPI_SetLayeredWindowAttributes($GUIChild, 0x605f5f)
    GUISetState(@SW_SHOW, $GUI)
    GUISetState(@SW_SHOW, $GUIChild)
    EndFunc
    
    Func _Browse()
        MsgBox(0, "Test", "Browse")
    EndFunc
    
    Func _Dropped()
        _ArrayDisplay($aDropFiles)
    EndFunc
    
    Func _Exit()
        MsgBox(0, "Test", "Exit")
        Exit
    EndFunc
    
    Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam)
        #forceref $hWnd, $iMsg, $lParam
        Local $iSize, $pFileName
        Local $aRet = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 0)
        Global $aDropFiles[$aRet[0] + 1] = [$aRet[0]]
        For $i = 0 To $aRet[0] - 1
            $aRet = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
            $iSize = $aRet[0] + 1
            $pFileName = DllStructCreate("wchar[" & $iSize & "]")
            DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $iSize)
            $aDropFiles[$i + 1] = DllStructGetData($pFileName, 1)
            $pFileName = 0
        Next
        Return $GUI_RUNDEFMSG
    EndFunc
    Alles anzeigen

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™