Hallo,
bei unserem Installprojekt ist es so dass wir vor dem Update bestimmte Dateien löschen.
Zu diesen Dateien gehören auch 2 *.ocx Dateien.
Da wir mit einer automatischen Softwareverteilung arbeiten.
Hier der befehl der in der Nacht auf dem Client ausgeführt wird.
(setup.exe /s /v "/qn /log C:\install.log“)
Jetzt das Problem
Wenn kein User im Programm ist alles O.K.
Befindet sich aber ein User im Programm läuft das Setup durch.
Nach dem neustart des Rechners sind die beiden ocx Dateien weg vor dem neustart noch da.
In der log Datei steht folgendes.
Information 1603.
Die Datei C:\[INSTALLDIR]\L***.ocx wird im Augenblick verwendet vom folgenden Prozess:
Name: Myprog, ID: 3652, Fenstertitel: "(not determined yet)".
Schließen Sie diese Anwendung und wiederholen Sie den Vorgang.
Information 1903. Planung des Computer-Neustarts:
Die Datei C:\[INSTALLDIR]\L***.ocx wird gelöscht.
Der Computer muss neu gestartet werden, um den Vorgang abzuschließen.
Jetzt meine frage
Wie kann ich prüfen ob der Prozess noch läuft und
das Setup mit Desktopmeldung abbrechen die durch den User
bestätigt werden muss?
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Prüfen ob Prozess läuft
Started by
HIL-LER
, Dec 22 2008 20:54
4 replies to this topic
Posted 23 December 2008 - 11:07
Hallo,
ich prüfe per Script ob die Dateien die ich erstetzen möchte im Zugriff sind und dieser einer Liste zur Auswertung zufügt. Hier ein Ausschnitt mit dem wesentlichen:
if Is(PATH_EXISTS,svTargetDir) then
//Verzeichnis mit zu aktualisierenden Programm-Dateien existiert
//Prüfung auf gesperrte Komponenten
nvResult=FindAllFiles(svTargetDir,"*.*",svResult,RESET);
while (nvResult=0)
if Is(FILE_LOCKED, svResult) then
ListAddString(listID, svResult, AFTER);
SprintfMsiLog ( "%s : Die Komponente ist für den Zugriff gesperrt" , svResult);
endif;
nvResult=FindAllFiles(svTargetDir,"*.*",svResult,CONTINUE);
endwhile;
FindAllFiles(svTargetDir,"*.*",svResult,CANCEL);
endif;
ali
ich prüfe per Script ob die Dateien die ich erstetzen möchte im Zugriff sind und dieser einer Liste zur Auswertung zufügt. Hier ein Ausschnitt mit dem wesentlichen:
if Is(PATH_EXISTS,svTargetDir) then
//Verzeichnis mit zu aktualisierenden Programm-Dateien existiert
//Prüfung auf gesperrte Komponenten
nvResult=FindAllFiles(svTargetDir,"*.*",svResult,RESET);
while (nvResult=0)
if Is(FILE_LOCKED, svResult) then
ListAddString(listID, svResult, AFTER);
SprintfMsiLog ( "%s : Die Komponente ist für den Zugriff gesperrt" , svResult);
endif;
nvResult=FindAllFiles(svTargetDir,"*.*",svResult,CONTINUE);
endwhile;
FindAllFiles(svTargetDir,"*.*",svResult,CANCEL);
endif;
ali
Posted 23 December 2008 - 11:08
Du fürhst das Setup im Silent-Modus aus, deshalb wird kein Dialog angezeigt. Wenn du Dialoge sehen willst, wähle einen anderen User Interface Level als /qn, z.B. /qb oder /qb! (mit ! wird der Cancel-Button entfernt)
Stefan Krüger
InstallSite.org twitter facebook
Posted 23 December 2008 - 12:38
Hallo,
wenn ich den Silent-Modus mit /qb! startet.
Und das Programm noch offen ist kommt der
Hinweis.
In diesem Fenster gibt es 3 Buttons
1. Abbrechen
2. Wiederholen
3. Ignorieren
Habe ich irgenwie die möglichkeit 3. auszublenden
oder zu deaktivieren ??
wenn ich den Silent-Modus mit /qb! startet.
Und das Programm noch offen ist kommt der
Hinweis.
In diesem Fenster gibt es 3 Buttons
1. Abbrechen
2. Wiederholen
3. Ignorieren
Habe ich irgenwie die möglichkeit 3. auszublenden
oder zu deaktivieren ??
Posted 30 December 2008 - 19:43
Nicht das ich wüsste. Wenn der Anwender das betreffende Programm nicht beenden kann ist Ignorieren sogar die einzige Möglichkeit um das Setup fortzusetzen. Das erfordert dann natürlich einen Reboot.
Stefan Krüger
InstallSite.org twitter facebook