Beiträge von Micha_he

    Ich tippe die einfachen Hochkommata gehen in der Kommandozeile nicht:

    Code
    _RunDOS("net use H: '\\192.168.150.34\Bücher Cloud' /persistent:yes")


    probier es mal getauscht:

    Code
    _RunDOS('net use H: "\\192.168.150.34\Bücher Cloud" /persistent:yes')

    Musst Du mal nach "mstsc commandline parameter" suchen...


    Man findet z.B. folgendes Vorgehen aus der Kommandozeile und damit sollte es auch unter AutoIt klappen:


    Code
    # Anmeldung generieren
    cmdkey /generic:"<servername>" /user:"<username>" /pass:"<password>"
    
    # Verbindung zum Server mit den vorherigen Anmeldung (user/pass geht mit mstsc nicht)
    mstsc /v:<servername>
    
    # Löschen der Anmeldung
    cmdkey /delete:TERMSRV/<servername>

    Micha_he : Den Schlüssel HKEY_CURRENT_USER\Classes gibt es bei mir allerdings nicht. Meinst du vielleicht HKEY_CURRENT_USER\Software\Classes?

    Ja, meinte ich. Das kommt davon, wenn man es mal von Hand schreibt...


    Ich glaube die Reihenfolge ist wie folgt:


    1. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.au3\UserChoice"

    Wenn dort eine "Progid" steht, gilt diese ID. Gesucht wird diese dann, ab 4..

    Dieser Punkt gilt aber nur wenn die Datei im Datei-Explorer (auch Windows-Desktop) an Hand der Dateiendung behandelt wird.


    2. Wenn unter 1. nicht gefunden wird, wird unter "HKEY_CURRENT_USER\SOFTWARE\Classes\.au3" geschaut,

    was dort im (Standard) steht.


    3. Wenn auch dort nichts gesondert definiert wurde, gilt die systemweite Config unter "HKEY_CLASSES_ROOT\.au3",

    dort im Schlüssel (Standard).


    4. Das verknüpfte Tool, bzw. die verknüpfte ProgID wird wie folgt gesucht:


    4.1 "HKEY_CURRENT_USER\SOFTWARE\Classes\[Progid]". (Im Falle AutoIt ist [Progid] im Normalfall = AutoIt3Script)

    Die verknüfte Standardaktion (Doppelklick) ist unter "...\shell\(Standard)" festgelegt.

    Das zu startende Programm dieser Aktion liegt dann unter "...\shell\[Aktion]\command".

    Das Standard-Icon ist hier unter "HKEY_CLASSES_ROOT\[Progid]\DefaultIcon" definiert.

    Trifft dieser Registry-Zweig hier nicht zu, dann siehe 4.2.


    4.2 "HKEY_CLASSES_ROOT\[Progid]" (Im Falle AutoIt ist [Progid] im Normalfall = AutoIt3Script)

    Aktion, startendes Programm und Icon wieder wie unter 4.1.

    Bedenke dabei, das z.B. falsch definierte Benutzer-Registry-Einträge unter


    HKCU\Classes\.au3

    HKCU\Classes\AutoIt3Script

    HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.au3


    vorranging vor den Standard-Einstellungen unter \HKCR\... sind.

    Bei mir sucht er mit dem Deaktivieren der Option "Such- und Websitevorschläge mit den eingegebenen Zeichen anzeigen" trotzdem noch beim eingestellten Suchanbieter.


    Ich habe aber einen neuen Suchanbieter definiert und aktiviert wie folgt, dann sucht er nicht mehr nach einer Eingabe in der Adresszeile:


    Code
    Suchmaschine= Nix
    Stichwort= Nix
    URL mit %s anstelle einer Abfrage= http://%s

    Die Konvertierung der binär eingelesenen Daten mit StringReplace() geht aber:

    Code
    $hInFile = FileOpen(@ScriptDir & "\untitled.txt", 16) ; Binary Read
    $data = BinaryToString(FileRead($hInFile))
    FileClose($hInFile)
    
    $data = StringReplace($data, "version 9", "version 7")
    
    $hOutFile = FileOpen(@ScriptDir & "\untitled_out.txt", 2 + 16) ;Binary Write
    FileWrite($hOutFile, $data)
    FileClose($hOutFile)

    vom Prinzip her möglicherweise so...


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

    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.

    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

    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!