AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Wie kann ich das Entpacken von .exen automatisieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich das Entpacken von .exen automatisieren?

Ein Thema von Phoenix · begonnen am 13. Dez 2005 · letzter Beitrag vom 13. Dez 2005
 
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#1

Wie kann ich das Entpacken von .exen automatisieren?

  Alt 13. Dez 2005, 15:59
Ich muss etwas automatisieren.

Konkret geht es hier um Windows-Updates, die in verschiedenen Ausprägungen (div. Windows-Versionen und div. Sprachversionen) von Microsoft heruntergeladen wurden. Alle diese Patches/Updates müssen nun aus ihren heruntergeladenen .exen entpackt werden. Leider verhalten die sich um Teil unterschiedlich.

Ein sehr gutes Beispiel ist z.B. der Patch KB823559, der für Windows9x, NT4, NT4 Terminalserver, XP jeweils in Deutsch und Englisch vorliegt.

Die 9x- und NT-Versionen lassen mit den Parametern /Tvoller Pfad) /C direkt in ein gewünschtes Verzeichnis entpacken und somit per Batch relativ einfach strukturiert ablegen. Mit den Versionen ab 2k/XP/2003 geht das nicht mehr, dort gibt es keine konkrete Möglichkeit den Patch zu entpacken ausser ihn mit dem Parameter /? aufzurufen und das vom Patch erstellte temporäre Verzeichnis wegzukopieren. Da das termporäre Verzeichnis immer anders heisst lässt sich das nicht mit einfachen Windows-Hausmitteln automatisieren da zudem eine Datei gesperrt ist und man nach dem Wegkopieren noch eine Meldung wegklicken muss damit sich das Update wieder aus dem temp. Verzeichnis löscht.

Hier mal die Batch für die Win9x und NT-Versionen:
Code:
@echo off
pushd "C:\"
mkdir tmp
popd
call %1 /T:"C:\tmp\" /C /Q
move %1 "C:\tmp\"
move "C:\tmp" %1
Es dreht sich hier allerdings um mindestens 7000 Dateien (knapp 4GB) - die ich, hoffentlich verständlicherweise, wirklich nicht alle einzeln zum entpacken anpacken will.

Hat jemand eine Idee wie ich all diese Dateien die sich ja wie beschrieben noch unterschiedlich verhalten können alle automatisiert entpackt und strukturiert abgelegt (am besten in einem Unterverzeichnis das so heisst wie die .exe) bekomme (siehe Beispiel-Batch)?

Ich dachte an etwas wie eine Fileüberwachung (Prozess starten, gucken wo der hinschreibt, die Dateien wegkopieren, rausfinden wie das neue Fenster heisst und das automatisch wegklicken), aber habe dafür gerade keinen Ansatz. Wonach muss ich suchen (in der Win32 API oder auch unter .NET, mir egal)? Wenn mir dabei noch weitere Sonderfälle unterkommen sollten die idealerweise auch noch erkannt und zumindest protokolliert werden, damit ich die hinterher nochmal anpacken kann.

Also, ein bisschen Brainstorming ist gefragt, ich brauche mögliche Lösungsansätze
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz