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

Beiträge von Micha_he

  • _ReplaceStringInFile

    • Micha_he
    • 8. Dezember 2021 um 11:58

    vom Prinzip her möglicherweise so...

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    
    
    Global $gaDropFiles[1], $iDropItem = -1
    
    
    #Region ###
    Global $Form1 = GUICreate("", 200, 200, -1, -1, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_ACCEPTFILES, $WS_EX_CONTROLPARENT)) ;$WS_EX_CONTROLPARENT = verschiebt Fenster auch ohne Rahmen
    GUISetBkColor(0x01A1F7)
    
    $FILES_DROPPED = GUICtrlCreateDummy()
    
    GUISetState(@SW_SHOW)
    
    #EndRegion ###
    
    
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $FILES_DROPPED
                For $i = 0 To UBound($gaDropFiles)-1
                   _change_bip($gaDropFiles[$i])
                Next
    
        EndSwitch
    WEnd
    
    
    
    Func _change_bip($sFileName)
       _ReplaceStringInFile($sFileName, "version 9", "version 7")
    EndFunc
    
    
    
    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
        Local $nSize, $pFileName
        Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 0)
        ReDim $gaDropFiles[$nAmt[0]]
           For $i = 0 To $nAmt[0] - 1
                $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
                $nSize = $nSize[0] + 1
                $pFileName = DllStructCreate('wchar[' & $nSize & ']')
                DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
                $gaDropFiles[$i] = DllStructGetData($pFileName, 1)
                $pFileName = 0
          Next
       GUICtrlSendToDummy($FILES_DROPPED, $nAmt[0])
    
    EndFunc
    Alles anzeigen

    wobei ich noch nicht verstanden habe, warum der String nicht ersetzt wird !?

    Edit: Mit einer anderen Testdatei geht es. liegt scheinbar am Dateiformat/Kodierung, mit der die Funktion nicht klar kommt....

  • _ReplaceStringInFile

    • Micha_he
    • 8. Dezember 2021 um 11:15

    Ohne das ich mir das komplette Script und die genutzte Funktion _ReplaceStringInFile() angesehen habe, musst Du das Ergebnis der Funktion wieder einer Variablen zuweisen und diese auch wieder in die (oder eine neue) Datei zurückschreiben.

    Meine Annahme war falsch: Die Funktion macht dies automatisch. Du must also den Dateinamen (im Beispiel $aFiles[0], bzw. $aFiles[x] per Schleife) an die Funktion übergeben und nicht den Inhalt.

  • DirGetSize() Bug? Lösung? Alternative?

    • Micha_he
    • 30. November 2021 um 15:17

    Kann ich bei uns in der Domäne nicht feststellen. Beide Werte auf das Byte genau gleich groß.

  • IconDock - Mac style Icon toolbar

    • Micha_he
    • 30. Juni 2021 um 15:32

    Hallo eukalyptus.

    Ich nutze bereits eine Weile ein Dock-Script, welches auf Deiner UDF beruht.

    Ich habe immer mal wieder das Problem, das das im Normalfall nicht sichtbare Dock (mit _IconDock_Fade() ausgeblendet) am unteren Desktoprand, einige Pixel (ungefähr die Höhe des Dock) nach oben rutscht, wenn sich während des Start's die Maus über der unteren Windows-Taskleiste befindet, bzw. dort bewegt wird. Horizontales Bewegen auf der Taskleiste erhöht bei mir merklich das Erscheinen dieses Problems. Anschließend befindet sich das Dock dauerhaft im unteren, sichtbaren Bereich.

    Hast Du eine Eklärung dafür ? Die Parameter die an die Funktion _IconDock_Create() übergeben werden, sind aber korrekt (DesktopHeight 1080 abzgl. den Default-Icon-Size-Werten von 64+32 ergibt 984) und wie bei den korrekten Starts.

    Hier mal ein auf die schnelle erstelltes Test-Skript, bei dem es bei 100% der Versuche zum Fehler führte, wenn ich die Maus während des Starts auf der Taskleiste horizontal bewege: MeinIconDock_ErrDemo.au3

    Noch ein Hinweis: Ich setze es unter Windows 7 x64 ein!

    Test unter Windows 10 zeigt identisches Verhalten.

    Hier nochmal eine angepasste IconDock-UDF für eine neuere AutoIt-Version, wo die GDIplus-Variable einen anderen Namen bekommen hat: IconDock.au3

  • Programm öffnen

    • Micha_he
    • 27. November 2020 um 12:44

    Stimmt, das mit @SW_MAXIMIZE war natürlich Blödsinn:Face:aber @SW_RESTORE sollte dann passen.

  • Programm öffnen

    • Micha_he
    • 27. November 2020 um 10:49

    Such mal im Forum (oben rechts) nach WinSetState(). Gibt diverse Beispiele. (@SW_MAXIMIZE wäre dann der richtige Parameter)

  • Verschlüsselungstool für USB-Stick (AKrypto)

    • Micha_he
    • 17. November 2020 um 11:47

    Kleines Update auf V0.552:

    HotKey wird während des Umbenennens von Ordnern und Dateien deaktiviert.

    Neue Versionen siehe Post #1.

  • Bräuchte Hilfe Variable used without being declared.:

    • Micha_he
    • 14. Februar 2020 um 09:11

    Deine Funktion chromefenster() wird wohl zu schnell aufgerufen und ausgeführt.

    Benutze vor dem WinMove() ein WinWait() oder WinWaitActive(). WinMove() wird in Deinem Fall fehlschlagen, weil das Fenster noch nicht aufgebaut wurde.

  • DriveMapAdd Alternative?!

    • Micha_he
    • 23. Januar 2020 um 17:54

    Versuch einmal, bei DriveMapAdd() den ersten Parameter LEER zu lassen. Dann wird kein Laufwerk verbunden, sondern nur die Berechtigung beim Server eingerichtet. Du solltest anschließend ohne Benutzer/Passwort, per UNC-Pfad auf die Zieldatei zugreifen können.

    Wieder aufheben mit: DriveMapDel ("\\Server\Path")

    Diesen Befehl musst Du auch ggf. vorher nutzen, falls Du unter anderem Benutzer bereits auf den Server zugegriffen hattest. Es kann im Normalfall immer nur eine Berechtigung zur gleichen Zeit exitieren!

  • Verschlüsselungstool für USB-Stick (AKrypto)

    • Micha_he
    • 15. November 2019 um 09:17

    Neue V0.55 im Beitrag #1

    - Timeout in der Funktion __ExitApp() eingefügt, damit sich gestartete Task beenden können

    - Fangen der Trennlinie TreeView/ListView nur bei aktivem Fenster

  • Frage zu MouseCoordMode

    • Micha_he
    • 30. September 2019 um 14:26

    Wenn ich die Hilfe richtig verstehe, gibt Opt() / AutoItSetOption() im Erfolgsfall, die bisherige Einstellung als Rückgabewert zurück.

  • Verschlüsselungstool für USB-Stick (AKrypto)

    • Micha_he
    • 18. September 2019 um 20:31

    Ein Fehlen würde unter Umständen nur selten auffallen ! Die Funktion _WinAPI_Create32BitHICON() kommt aktuell noch aus der WinApiIcons.au3 und wird für das Icondarstellung des ListView genutzt, wenn für einen betreffenden Dateityp ein IconHandler verwendet wird. Also ziemlich selten...

    Aber normal sollte der Au3Check das ja auch in der Beta bemängeln, wenn eine Funktion nicht verfübar ist.

    Zur Sicherheit schau mal aus welche Includedatei die _WinAPI_Create32BitHICON() bei der betreffenden Beta kommt und ob diese bei den restlichen Includes dabei ist.

    Ansonsten viel Spaß damit.

    Edit: Habe gerade mal nachgesehen. In der Beta V3.3.15.0 ist die Funktion _WinAPI_Create32BitHICON() in der Includedatei 'WinAPIGdi.au3'. Sollte also mit der auskommentierten WinApiIcons.au3 auch unter der Beta einwandfrei laufen.

  • Verschlüsselungstool für USB-Stick (AKrypto)

    • Micha_he
    • 18. September 2019 um 12:25

    Hallo bazii.

    zu1) Ich nutze kein SciTE und kann daher nur raten, das dort eine neue Beta-Version zum Start genutzt wird. AKrypto ist im Normalfall nur bis zu der Version getestet, die im Script steht (meist die letzte Stabil). Wahrscheinlich gibt es in der neuen Version die WinAPIIcons.au3 in den Includes nicht mehr. Must Du mal schauen, was unter Umständen angepasst werden muss, falls Du Interesse daran hast.

    zu2) Ist Normal. Der Au3Check gibt den Fehler aus, weil das deklarieren im IF-Zweig nicht sauber erkannt wird. Ggf. ist mein Workaround auch nicht 100% konform. Die Zeile sollte aber im Script verbleiben ,damit es auch unter der älteren AutoIt-Version läuft, wo die Konstante fehlt.

    zu3) Fehler der in V0.52 entstanden ist, in V0.54 nun wieder korrigiert.

    zu4) Habe ich in V0.54 angepasst.

    zu5) Konnte ich nur feststellen, wenn die Maus beim Verschieben mit gedrückter Maustaste, genau über die Trennlinie zwischen TreeView und ListView kam. Sollte in V0.54 nicht mehr auftreten.

    Gruß

    Micha

  • Verschlüsselungstool für USB-Stick (AKrypto)

    • Micha_he
    • 17. September 2019 um 11:07

    Danke bazii . Idee 1a und 2 gefallen mir. Habe ich in der neuen V0.53 (Beitrag #1) umgesetzt.

  • Verschlüsselungstool für USB-Stick (AKrypto)

    • Micha_he
    • 16. September 2019 um 15:54

    Folgende Änderungen in der V0.52 im Beitrag #1:

    Code
    Update:     AutoIt V3.3.14.5
    Rename:     diverse Funktionen und Variablen
    BugFix:     __Decrypt_Name()
    NewFunc:    __GetDecryptedLinkTarget()
    Modify:     Funktion __DecryptExecute() auch .lnk
    Modify:     SplashGUI mit Unterverzeichnisanzeige
    BugFix:     GUI-Move/-Resize, List-/TreeView-Resize
    Optimize:   Funktion __ShowFolder() 
    Optimize:   __FileGetIcon() Rückgabe als Array
    Optimize:   Funktion __FileCopy_Crypt()
    Optimize:   Funktion __DirCopy_Crypt_Recursiv()
    Optimize:   Funktion __DeleteObjects() Abbruch
    BugFix:     Pfad-Limit 260 auf 259
    Modify:     Icons aus EXE werden verwendet
    Opt/Fix:    Sortierung TreeView(Links)
    Opt/Fix:    Sortierung ListView(Rechts)
    Delete:     Funktion __GUICtrlListView_ReSortItems()
    NewFunc:    Modifizierte __GUICtrlListView_SortItems()
    NewFunc:    Fehlerbereinigte __GUICtrlTreeView_Sort()
    Modify:     Funktion __SearchFolder() nun rekursiv
    Delete:     Funktion _FolderFunc()
    Modify:     Funktion __FileGetIcon() kann nun IconHandler
    Modify:     Spaltenanpassung bei GUI/ListView-Änderung
    Alles anzeigen
  • ListView Header-Fokus für Init-Sortierung setzen

    • Micha_he
    • 12. September 2019 um 14:38

    Danke, das hilft mir :thumbup:

  • ListView Header-Fokus für Init-Sortierung setzen

    • Micha_he
    • 12. September 2019 um 11:01

    Ja, nach dem Anklicken einer Spalte !

    Ich benötige es aber ohne das der Benutzer geklickt hat.


    Das Skript füllt das ListView und sortiert die Spalte ohne das der Benutzer klickt.

    Und später wollte ich für ein erneutes Sortieren ermitteln, welches die bisherige Spalte für die Sortierung war ohne das ich weiß (mitplotte), ob ein Benutzer die Sortierung auf eine andere Spalte geändert hatte.

  • ListView Header-Fokus für Init-Sortierung setzen

    • Micha_he
    • 12. September 2019 um 09:37

    Nein, das ist leider auch nur die Optik (Pfeil im Header). Die Rückgabe von 'GUICtrlGetState($idListview)' bleibt trotzdem bei -1.

    Ich ersetzte nun einfach vor dem Aufruf der Sortierfunktion den Status -1 mit 0. Dann wird entweder Splate 0 sortiert (Default-Wunsch) oder die Spalte die der Anwender irgendwann angeklickt hat.

  • ListView Header-Fokus für Init-Sortierung setzen

    • Micha_he
    • 12. September 2019 um 07:52

    Mit dem Befehl aus Zeile 42, sortierte ich später im Programm beim Klick auf den Spalten-Kopf die ausgewählte Spalte neu/um.

    Das klappt auch. Da ich zum Zeitpunkt des Füllens (passiert mehrfach) aber die Spalte 0 absteigend sortiere, sortiert der Befehl Z42 erst wieder korrekt, wenn der Benutzer ein Spalte mit der Maus geklickt hat.

    Deshalb die Frage, ob es eine vernünftige Möglichkeit gibt, nach dem Sortieren mit _GUICtrlListView_SortItems(), die sortierte Spalte auf 'geklickt' zu setzten, damit GUICtrlGetState() anschließend den passenden Wert zurückgibt.

  • ListView Header-Fokus für Init-Sortierung setzen

    • Micha_he
    • 11. September 2019 um 22:37

    Das dachte ich auch so. Aber nach dem Ausführen des von Dir angegebenen Befehls, ist der Rückgabewert von 'GUICtrlGetState($idListview)' weiterhin -1 ! Und das ist nicht korrekt.

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™