| Autor |
Beitrag |
LonghornUser
      
Beiträge: 796
|
Verfasst: Sa 21.02.09 22:35
Hallo,
ich möchte gerne eine von meinem Programm erzeugte Datei per Kommandozeile von WinRAR packen lassen (mit Passwort).
Gibt es eine Möglichkeit, WinRAR per Kommandozeilenbefehl (also per Parameter) dazu zu veranlassen, ein Archiv mit einem Passwort zu erstellen ?
Ciao LHUser
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 21.02.09 22:43
In die Dokumentation hast du wohl nicht geschaut?
(Datei Rar.txt direkt neben dem Kommandozeilentool Rar.exe) | Zitat: | -p[p] Verschlüsselt Dateien beim Archivieren mit dem Passwort <p>.
Beim Passwort wird zwischen Groß- und Kleinschreibung
unterschieden. Wenn Sie das Passwort in der Kommandozeile
weglassen, werden Sie mit der Meldung "Passwort eingeben"
aufgefordert, es einzugeben.
Beispiel:
rar a -pmyhoney geheim1 *.txt
Fügt alle "*.txt"-Dateien zum Archiv "geheim1" hinzu und
verschlüsselt sie mit dem Passwort "myhoney". |
| Zitat: | -hp[p] Dateidaten und Dateiköpfe verschlüsseln.
Der Schalter ist vergleichbar mit dem Schalter "-p[p]",
jedoch verschlüsselt der Schalter "-p" nur die Dateidaten,
während die anderen Informationen wie Dateinamen sichtbar
bleiben. Dieser Schalter verschlüsselt alle wichtigen Bereiche
eines Archivs: Dateidaten, Dateinamen, Dateigrößen,
Dateiattribute, Dateikommentare und andere Datenblöcke. Das
bedeutet eine höhere Sicherheitsstufe.
Ohne das Passwort ist es dann sogar unmöglich, die Liste der
Dateien in einem Archiv anzuschauen, das mit dem Schalter
"-hp" verschlüsselt wurde.
Beispiel:
rar a -hpfGzq5yKw geheim report.txt
Fügt die Datei "report.txt" zum verschlüsselten Archiv
"geheim.rar" hinzu unter Verwendung des Passworts "fGzq5yKw". |
Allerdings frage ich mich, ob es nicht sinnvoller wäre, das Zipformat zu benutzen, denn da könntest du den kompletten Packer in dein Programm integrieren und bräuchtest kein installiertes WinRar.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: So 22.02.09 01:02
Naja, eigentlich wollte ich auch ZIP verwenden, aber schon auch WinRAR, da ich jetzt nicht erst noch ewig ZIP-Funktionalität in mein Programm integrieren will (die Software ist ausschließlich für mich und WinRAR ist immer installiert). Geht das auch per Kommandozeile ?
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.02.09 01:21
Ich hab doch die entsprechenden Auszüge aus der WinRar-Dokumentation gepostet, wie es mit WinRar geht. 
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: So 22.02.09 01:49
Da geht es aber nur mit RAR, oder ? Ich möchte gerne ZIP-Archive erstellen.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.02.09 01:58
Wie kommst du denn dann auf WinRar?
Wie wäre es mit einer der vielen Komponenten für Delphi? Zum Beispiel dieser:
www.componentace.com..._delphi_zipforge.htm
Oder 7-Zip, das kann das per Kommandozeile und ist kostenlos:
www.computervideos.e...rchiv-erstellen.html
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: So 22.02.09 17:01
Super, danke für die Tipps. Wenn ich wieder etwas Zeit habe, schaue ich mir das mal an.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: Sa 04.04.09 19:09
OK. Nun habe ich nun endlich etwas Zeit gefunden und ein bisschen herumexperimentiert. Leider bekomme ich immer eine Fehlermeldung mit "Problembericht senden" usw.
Wenn ich den durch mein Programm an Shellexecute abgegebenen String allerdings per cmd.exe ausführe, klappt es. Habt ihr eine Idee ?
Delphi-Quelltext 1: 2:
| Shellexecute(handle,'open',Pchar(srcdir+'7za.exe'),PChar('a "'+DesktopDir+String1+ '.zip" -p'+String1+' "'+DesktopDir+'Setup\Ausgabe\Setup.exe'+'"'),nil,SW_SHOW); |
Was stimmt hier nicht ?
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 04.04.09 22:45
Ich weiß ja nicht genau wie das mit den Pfaden aussieht, aber vielleicht ist es schlecht nil als Arbeitsverzeichnis anzugeben. Denn dann wird das Arbeitsverzeichnis deines Programms geerbt und wenn du dieses nicht direkt vorher setzt, dann hast du ja keine Ahnung wo dieses liegt.
Die Verzeichnisse existieren aber? Sonst solltest du die vielleicht vorher mit ForceDirectories explizit ggf. anlegen.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: So 05.04.09 08:42
Die Verzeichnisse existieren garantiert.
Zum Thema Arbeitsverzeichnis: Ich habe einmal das Verzeichnis von 7za.exe probiert und auch einmal das Verzeichnis "Ausgabe" (natürlich jeweils mit komplettem Pfad), wo die zu zippende Datei liegt. ALso daran liegt es auch nicht.
Hast du noch ne Idee ?
Als Hinweis: Unter Windows XP funktioniert genau das gleiche Programm absolut problemfrei ???
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.04.09 09:18
Wenn es unter XP geht und unter Vista nicht, dann geht es unter XP ziemlich sicher auch nur, weil du als Administrator am PC arbeitest...
Vermutlich schreibst du in ein Verzeichnis ohne Schreibrechte, sei es unter c:\programme oder anderswo. Das kann natürlich auch eine temporäre Datei des aufgerufenen Programms sein oder ähnliches.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: So 05.04.09 09:20
Naja, eh ich jetzt ewig rumrätsele, nehme ich einfach die ZIP-Forge Komponente. Die tuts auch und da bin ich wahrscheinlich noch schneller  Danke für deine Hilfe !
|
|