Man beachte aber, das der Zweig:
HKCU\Software\Classes
vorrangig von HKCR ist !
Wenn also dort unter .au3 etwas Blödsinniges drinsteht, das kommt unter Umständen die Konfiguration von HKCR gar nicht beim Benutzer an.
Man beachte aber, das der Zweig:
HKCU\Software\Classes
vorrangig von HKCR ist !
Wenn also dort unter .au3 etwas Blödsinniges drinsteht, das kommt unter Umständen die Konfiguration von HKCR gar nicht beim Benutzer an.
Mach einfach mal vor Deine Zeile 21 zwei MsgBox'en und lass Dir die beiden zu vergleichenden Variablen ausgeben.
Entweder kommst Du dann schon selber drauf oder stellst anschließend nochmal dein Script hier ein und schreibst dazu, was 'genau' in den beiden MsgBox'en ausgegeben wurde.
Neue Version 0.510 (Siehe Post #1) mit folgenden Anpassungen:
- Abbruchfehler beim Neuanlegen einer Datei beseitigt.
- Fehler bei der Passwortabfrage (geändert in V0.505) korrigiert.
- _ShellExecuteEx() durch neue Funktion _StartFile2() ersetzt.
- Fehlerbehandlung bei 0-Byte-Dateien integriert.
- Dateitypen-Bezeichnung eingedeutscht.
- Fehler in der relative Adressierung auf GUI-Objekte in der Funktion _ShowFolder() korrigiert.
- Umbenennen von Dateien/Ordnern per Kontextmenü integriert.
- Läuft jetzt auch im 64bit-Mode.
- FileOpen-Fehler in UDF "_AESFile.au3" eingefügt, damit die Funktion _DecryptAll() darauf reagieren kann.
Viel Spaß beim Testen...
Das mit dem Fehler der "AES.au3" unter dem 64bit-Modus konnte ich mit einem Tip von "Ward" (Originalautor aus dem englischen Forum) lösen. Er hatte bereits neue UDFs geschrieben, welche das Problem nicht haben und diese werde ich im nächsten Release einsetzen.
Ein offenes Problem im Zusammenhang mit 64bit existiert noch:
Die Funktion "_ShellExecuteEx()" hat auch ein Problem mit dem 64bit Mode. Ich benötige aber die Prozess-ID der mit ShellExecute() gestarteten Datei.
Als Aternative hatte ich die StartFile()-Funktion von AspirinJunkie im Auge. Nur beachtet diese Funktion auch nicht alle Registry-Pfade unter HKCR, HKCU\Software\Classes, HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts. Ist alles ziemlich umfangreich, an die für den User aktuelle Anwendung für einen Dateityp zu kommen.
Zweite Alternative:
Die Funktion "_WinAPI_FindExecutable()". Findet scheinbar sauber die passende Anwendung, leider ohne Info's zur Parameterübergabe. Die Funktion gibt nur die EXE zurück und informiert nicht in, welcher Form die Datei als Parameter hinzugefügt werden muss.
Eine fertige Funktion, wäre mir schon (aus Zeitgründen) willkommen. Hat sich damit in letzter Zeit jemand beschäftigt ?
Sonst muss ich mich selbst ransetzen....
Ich habe mir den Fehler mal angesehen. Er liegt erstens an der "_MemoryDll-UDF", die in der bisher eingesetzten Version nicht 64bit tauglich war. Konnte ich ersetzen. Das war die gute Nachricht.
Nur...
Die UDF "_AES.au3" (von WARD aus dem englischen Forum), welche eine interne DLL mitbringt, scheint leider auch nicht mit 64bit zu funktionieren. Jedensfalls klappt es mit 32bit noch und sobald ich es unter 64bit-AutoIt teste, ist das erwartete Array kein Array mehr. Also Leer !
Meine Idee war nun, unter 64bit auf die neuen AutoIt-Internen Funktionen für AES256 zurückzugreifen. Die UDF von WARD habe ich genutzt, damit AES auch auf älteren Windows-Version läuft. Nur finde ich keine identische (interne) Funktion, damit die verschlüsselten Daten untereinander kompatible bleiben.
Wer also eine AutoIt-Interne (Datenkompatible) Alternative für die WARD-AES-Funktion:
[autoit]_AesEncryptFile($sKey, $sSource, $sDestinationC, "CFB")
[/autoit]
kennt, würde mir damit weiterhelfen.
Bei Kompilierten exe
Wie ist dies zu verstehen ?
Versuchst Du eine kompilierte EXE in AKrypto zu verschlüsseln oder meinst Du, beim Verschlüsseln irgendwelcher Dateien, wenn die AKrypto-EXE mit 64bit kompiliert ist ?
Weil in 32bit kompiliert unter Windows7 64bit läuft alles einwandfrei !
Also: AKrypto kompiliert ? In 32 oder 64bit ? Bei welchen Daten (die verschlüsselt werden sollen) tritt der Fehler auf ?
Fehler Nr. 1 ist schon beseitigt (im nächsten Release) und die Idee nehm ich für die nahe Zukunft mit auf, da sie einfach zu realisieren ist.
Neue Version 0.507 (Siehe Post #1) mit folgenden Anpassungen:
- Sicheres Löschen der Dateien im Temp-Ordner umgesetzt, damit ein möglicherweise später genutztes 'UNDELETE' die entschlüsselte Datei nicht wieder herstellen kann.
Neue Version 0.506 (Siehe Post #1) mit folgenden Anpassungen:
- Anpassungen an AutoIt V3.3.8.x
- Fehler bei einer Stringverknüpfung korrigiert
- Fehlende Deklaration eingefügt
Ging fix, waren ja nur ein paar Kleinigkeiten.
"verbraucherfreundliche" Antwort
Ich weiß jetzt nicht, ob Du es meinst "wie gesagt" oder ob Du das Sarkasmus-Tag vergessen hattest !
Es ist halt etwas kompliziert, ein umfangreiches AutoIt-Script immer an die aktuelle AutoIt-Version anzupassen. Ständig ändern sich Funktionsnamen, Deklarationen bzw. dessen UDF.
Nach der Anpassung müsste ich mit AutoIt 3.3.8.x weiterarbeiten und es würden ggf. etliche andere meiner Scripte auch eine Aktualisierung erfordern.
Ich stelle mir dann lieber vor, ich passe die Stellen im Script dann so an, das es abhängig von der eingesetzten AutoIt-Version unterschiedlich arbeitet. Nur dafür brauche ich Zeit und da sieht es im Moment knapp aus.
Dann heißt es für Dich:
- entweder selber die Probleme beseitigen
- oder warten bis ich es mal auf die V3.3.8.x anpasse
- oder das fertig kompilierte Script verwenden, welches ich gerade im Post #1 eingefügt habe
Gruß
Micha
Welche AutoIt-Version nutzt Du ? Getestet ist es nur bis zur V3.3.6.1.
Neue Version 0.505 (Siehe Post #1) mit folgenden Anpassungen:
- Anpassungen Dual-Screen
- Fehlerkorrektur Taskleiste links/rechts
- Passwort als Parameter beim Start
Du fragst das "Macro" @EXTENDED in der Art "IF xxx THEN" ab. Diese Bedingung ist erfüllt wenn:
xxx = TRUE
xxx > 0 (ggf. gibt es noch weiter Bedingungen, die aber für Dich hier nicht interessant sind)
Ich schrieb Dir das die Funktion RegRead bei einem nicht existenten Schlüssel, den Wert 2 für @EXTENDED zurückgibt. Damit wäre dann die Bedingung erfüllt da @EXTENDED > 0 ! obwohl der Schlüssel nicht existiert.
@EXTENDED ist für das Ermitteln ob der Schlüssel existiert, scheinbar nicht zu gebrauchen.
Jetzt klar ?
@EXTENDED (in Zeile
enthält bei mir den Wert 2 (=REG_EXPAND_SZ) wenn der Schlüssel nicht existiert. Damit ist aber Deine IF-Bedingung erfüllt, weil > 0.
Verwende in Zeile 8 doch einfach ' IF $var <> "" '.
Aus Scriptomatic "herauskopieren" hätte ich auch noch fix geschafft !
Nur fehlt diesem Script eine saubere Authentifizierung mit Username & Passwort für eine Remote-Nutzung.
In dieser Standardversion wird es wenn dann nur Local, in der Domäne oder bei gleichem benutzernamen/Passwort funktionieren.
oder "PSLIST" aus den Sysinternal-Tools - Jetzt MS....
oder wahrscheinlich auch mit WMI, wobei ich auf die schnelle kein Beispiel habe.
Der Beitrag ist bereits über 14 Tage gelöst !
Ich bin mir nicht sicher aber ich glaube beim ersten start von PsExec muss etwas bestätigt werrden.
oder man nutzt den Parameter "-accepteula" beim Aufruf des psexec/pslist/pskill u.s.w..
Kannst aber auch versuchen Blowfish umzusetzen und
In meinem Tool "AKrypto" (LINK) ist eine Blowfish-UDF enthalten !
Mit Deinen Informationen kann man dir nicht helfen. In Deinen Beispielen fehlt immernoch der Hinweis ob und welche UDF du nutzt.
In Deinen Script muss etwas wie "#include <FTPEx.au3>" vorkommen und dabei wäre dann noch die Frage welche Version der UDF es ist.
Da Deine Befehle/Parameter nicht zu original "FTPEx.au3" aus dem aktuellen AutoIt passen, schrieb dir autoBert bereits. Meines Wissens nach existiert in dieser auch das von Dir verwendete Kommando "FTPUploadProgress" nicht, was zum Fehler führen wird. Die Funktion muss schon in der verwendeten UDF vorkommen, wenn es kein Default-AutoIt-Befehl ist.
Und wenn Du eine spezielle FTP-UDF verwendet, solltest Du sie entweder mit anhängen oder verlinken. Dann können wir Dir auch helfen.