2016-05-16 13 views
0

Manchmal passiert es, dass einige Dateien meiner Anwendung von einigen Prozessen verwendet werden. Beispielsweise öffnet der Benutzer das Anwendungsprotokoll oder etwas ähnliches und vergisst, es zu schließen. Dies verursacht einige Fehler während der Installation/Aktualisierung/Deinstallation. In solchen Fällen möchte ich herausfinden, welcher Prozess die Datei verwendet, und dem Benutzer eine Nachricht anzeigen, die angibt, dass Dateien verwendet werden.Finden Sie heraus, welcher Prozess verhindert, Anwendungsdatendateien zu ändern

Ist es in Inno-Setup möglich, herauszufinden, welcher Prozess Skript daran hindert, Datei zu ändern? Zumindest, wenn ich das im Code-Bereich versuche.

Antwort

1

Das Inno-Setup kann automatisch prüfen, ob die installierten Dateien von einigen Prozessen gesperrt sind und einem Benutzer anbieten, die Anwendungen automatisch zu schließen (und später neu zu starten) (seit 5.5.0).

Stellen Sie sicher, dass CloseApplications directive auf den Standardwert yes eingestellt ist.

Obwohl standardmäßig nur *.exe,*.dll,*.chm Dateien überprüft werden. Wenn Sie auch andere oder alle anderen Dateien überprüfen möchten, ändern die CloseApplicationsFilter directive:

[Setup] 
; default 
CloseApplications=yes 
; check all files 
CloseApplicationsFilter=*.* 

Wenn Sie einige Dateien durch einen Code installieren, verwenden Sie die RegisterExtraCloseApplicationsResources event function:

procedure RegisterExtraCloseApplicationsResources; 
begin 
    RegisterExtraCloseApplicationsResource(False, ExpandConstant('{userappdata}\My Program.log')); 
end; 

enter image description here

+0

Gibt es eine Möglichkeit, RegisterExtraCloseApplicationsResource auf den gesamten Ordner zu teilen? – lentinant

+0

In welcher Version wurde es auch eingeführt? Mein Compiler (5.4.2) erkennt diese Direktive nicht. – lentinant

+0

5.5.0 für 'CloseApplications'. 5.5.2 für 'RegisterExtraCloseApplicationsResources'. Siehe [Inno Setup Revisionsprotokoll] (http://www.jrsoftware.org/files/is5-whatsnew.htm). Aber es ist nicht wirklich wichtig, immer die neueste Version zu verwenden! Besonders die neueste Version 5.5.9 behebt wichtige Sicherheitslücken. –

Verwandte Themen