Entwickler-Ecke
Windows API - Cab macht Probleme
mexx - Di 01.06.04 15:16
Titel: Cab macht Probleme
Hi,
ich entpacke eine cab mit Shellexecute im sw_hide modus. Vorkurzen hat auch alles funktioniert. Ohne das ich den code geändert habe oder irgend welche namen, funktioniert es nicht mehr.
Über die command macht er es aber.
Gibt es etwas bei cab's zu beachten was ich nicht beachtet haben?
Quelltext
1:
| ShellExecute(Application.Handle, 'open', 'extract', '/E /L [Ziellaufwerk] datei.cab [datei1.txt]', nil, SW_SHOW); |
Gruß Mexx
FaTaLGuiLLoTiNe - Di 01.06.04 16:43
Vielleicht wollte der Ärmste keine "Neue Frage = neuer Thread" Antwort provozieren ... liest man ja oft genug hier. Ist aber sicherlich ein Grenzfall, die hängen ja doch direkt zusammen, die beiden Fragen.
Delete - Di 01.06.04 16:46
So hat er eine "Neue Frage = Alter Thread"-Antwort bekommen. ;)
Aber ernsthaft -
Ich glaube nach wie vor, dass das CAB-API besser ist. Insbesondere weil man dann vom externen Entpackprogramm unabhängig ist und auch CABs bearbeiten kann (sprich: eigene Dateien hinzufügen, usw.). Irgendwann habe ich mal eine Komponente benutzt. Aber ich wollte mir ohnehin mal das "Dahinter" ansehen und evtl. auch direkt (via API) auf CABs zugreifen.
Delete - Di 01.06.04 17:11
MathiasSimmack hat folgendes geschrieben: |
[...] und auch CABs bearbeiten kann (sprich: eigene Dateien hinzufügen, usw.). |
Halt! Das geht nicht bei CABs. Mein Fehler. Es können keine Dateien aus CABs gelöscht werden (wie bei ZIP, RAR, o.ä.), und man kann keine Dateien hinzufügen. Wenn man das machen will, muss man das komplette CAB-Archiv erneuern.
Aber wie dem auch sei, hier geht´s ja ohnehin bloß ums Entpacken. ;)
mexx - Mi 02.06.04 12:22
Hi,
danke für die Antwort, aber das hilft mir nicht. Die ShellExecute erfüllt ja Ihren Zweck. Von 5 Dateien wird eine nicht entpackt. Ich habe Sie umbenannt, hat nix genützt. Aber die command machts.
Delete - Mi 02.06.04 12:33
mexx hat folgendes geschrieben: |
Ich habe Sie umbenannt, hat nix genützt. |
Ich lasse mich ja auch nicht von jedem umbenennen. :mrgreen: Häng mal spaßeshalber noch das ".exe" an den Dateinamen "extract" ran. Ich glaube zwar nicht, dass es was bringt, aber einen Versuch ist es wert.
Zitat: |
Von 5 Dateien wird eine nicht entpackt. |
Du solltest dir vielleicht doch mal das Tutorial auf
delphi-source.de [
http://www.delphi-source.de/tutorials/cabinet/] anschauen. Wie gesagt, damit benutzt du direkt das CAB-API und brauchst keinen Aufruf von "ShellExecute" mehr.
mexx - Mi 02.06.04 12:42
Die dateiendung hat keinen effekt, habe ich auch schon daran gedacht. Jetzt mal das Tutorial bei Seite geschoben. Ich habe für jede der 5 Dateien eine eigene Shellexecute um einen ProgressBar mit jeden entpacken steigen zu lassen. Wenn ich die 4 Funktinierenden Dateien auskommentiere, funktioniert die eine die sonst nicht geht. Gemeinsam läuft wiederrum nix. Läuft das vielleicht zu schnell, wenn ich die Dateien entpacke?(was ich nicht glaube)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!