Beiträge von Micha_he
-
-
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:
-
-
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.
-
Bin gerade darüber gefallen, deshalb hier zur Info:
Die IconDock-UDF funktioniert wegen eine Fehlers bei der Hex-Arithmetik nicht mit der AutoIt-Version 3.3.16.0 , sondern erst wieder mit der 3.3.16.1.
-
Bin gerade am testen... Scheinbar funktioniert das GUISwitch() nicht wie wir beide es nutzen, die Objecte werden direkt auf der GUI und nicht auf dem Tabitem erzeugt. Ich habe aber den Grund noch nicht gefunden.
-
Ich habe allerdings keine Ahnung, wie ich AutoIt beibringen kann, dass die Felder in den jewiligen Tabs erscheinen sollen.
2. Parameter von:
-
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:
-
Must Du mal Eingangs- und Ausgangsdatei vergleichen, ob dabei die restlichen Bytes nicht verändert werden.
-
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...
C
Alles anzeigen#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
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.
-
Kann ich bei uns in der Domäne nicht feststellen. Beide Werte auf das Byte genau gleich groß.
-
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
-
Stimmt, das mit @SW_MAXIMIZE war natürlich Blödsinn
aber @SW_RESTORE sollte dann passen.
-
Such mal im Forum (oben rechts) nach WinSetState(). Gibt diverse Beispiele. (@SW_MAXIMIZE wäre dann der richtige Parameter)
-
Kleines Update auf V0.552:
HotKey wird während des Umbenennens von Ordnern und Dateien deaktiviert.
Neue Versionen siehe Post #1.
-
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.
-
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!