Entwickler-Ecke
Windows API - ShellExecute und WinRAR Problem
Sahroma - Di 01.09.15 11:01
Titel: ShellExecute und WinRAR Problem
Hallo zusammen,
ich habe da ein kleines Problem mit dem ShellExecute Befehl. Und zwar schreibe ich für die Firma ein kleines Backup Programm, dass unter anderem ein bestimmten Ordner in .rar packt. Mein Code sieht bisher so aus:
Delphi-Quelltext
1:
| ShellExecute(0,'open','winRAR.exe', ' X:\test.rar X:\BackupTest\*. * ', nil, SW_Hide); |
Das Problem hierbei ist, er erstellt irgendwie die .rar Datei nicht und ich komme nicht dahinter an was das liegen könnte. Das durchsuchen des Forums brachte mich auch nicht wirklich weiter (oder ich übersah etwas^^). Fehlt da etwas oder was ist der Grund?
Gruß
Sahroma
P.S. Das selbe Laufwerk ist nur zu Test Zwecken. ;)
Gammatester - Di 01.09.15 11:21
Auf der Kommandozeile funktioniert das auch nicht, sondern man muß zB ein a Kommando angeben, also zB
winRAR.exe a test.rar *.* , vielleicht hilft bei Dir dann
Delphi-Quelltext
1:
| ShellExecute(0,'open','winRAR.exe', 'a X:\test.rar X:\BackupTest\*. * ', nil, SW_Hide); |
Delete - Di 01.09.15 11:21
Command line console (text mode) version - Rar.exe.
Man könnte natürlich rar.txt lesen, was man im WINRAR-Verzeichnis findet...
Alphabetic commands list
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| a add files to an archive c add an archive comment ch change archive parameters cv convert archives cw write an archive comment to file d delete files from an archive e extract files from an archive, ignoring paths f freshen files within an archive i find string in archives k lock an archive m move files and folders to an archive r repair a damaged archive rc reconstruct missing volumes rn rename archived files rr[N] add data recovery record rv[N] create recovery volumes s[name] convert an archive to a self-extracting type s- remove SFX module t test archive files u update files within an archive x extract files from an archive with full paths |
Folgendes funktioniert problemlos:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button3Click(Sender: TObject); begin ShellExecute(0,'open','C:\Program Files (x86)\WinRAR\RAR.exe', 'a F:\RARtest.rar F:\Text\*.*', nil, SW_Show); end; |
oder so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button5Click(Sender: TObject); var strParams,FN : String; begin strParams:= 'a F:\RARtest10.rar F:\Text\*.*'; FN:= 'C:\Program Files (x86)\WinRAR\Rar.exe'; ShellExecute(Application.Handle,'OPEN',PWChar(FN), PWChar(strParams),NIL, SW_Hide); end; |
Sahroma - Di 01.09.15 11:59
Danke euch beiden hat mir auf jeden Fall geholfen. Ich habe nun den Code ein wenig modifiziert um noch ein Datum an den Dateinamen zu hängen. An die rar.text habe ich nicht gedacht. :oops:
Delphi-Quelltext
1:
| ShellExecute(0,'open','winRAR.exe', 'a -ep1 -s -inul -agYYYY-MM-DD X:\test.rar X:\BackupTest\*. * ', nil, SW_Hide); |
Und hier tauchte ein kleines Problem auf und zwar hängt er das Datum direkt hinter test (ohne Leerzeichen). Wie füge ich dazwischen ein Leerzeichen ein?
Delete - Di 01.09.15 12:59
So geht's bei mir: (" = SHIFT 2)
Delphi-Quelltext
1:
| strParams:= 'a -ep1 -s -inul -agYYYY-MM-DD F:\RARtest16" ".rar F:\Text\*.*'; |
Sahroma - Di 01.09.15 14:07
hathor hat folgendes geschrieben : |
So geht's bei mir: (" = SHIFT 2)
Delphi-Quelltext 1:
| strParams:= 'a -ep1 -s -inul -agYYYY-MM-DD F:\RARtest16" ".rar F:\Text\*.*'; | |
Super danke dir hat einwandfrei funktioniert. :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!