Einzelnen Beitrag anzeigen

zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#7

AW: mit Innosetup Dateiattribute ändern

  Alt 4. Jul 2010, 20:38
Du kannst das nach der Installation im Inno Setup selbst machen.
Dafür musst du die WinAPI-Funktion SetFileAttributes() Inno Setup zur Verfügung stellen und im PostInstall das Readonly-Flag der Dateien löschen:

1) In der Code-Sektion erstmal oben die SetFileAttributes() deklarieren:

Delphi-Quellcode:
const
   FILE_ATTRIBUTE_NORMAL = 0;
   FILE_ATTRIBUTE_ARCHIVE = $20;
   FILE_ATTRIBUTE_HIDDEN = 2;
   FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $2000;
   FILE_ATTRIBUTE_OFFLINE = $1000;
   FILE_ATTRIBUTE_READONLY = 1;
   FILE_ATTRIBUTE_SYSTEM = 4;
   FILE_ATTRIBUTE_TEMPORARY = $100;

function SetFileAttributes(lpFileName : String, dwAttribs : LongInt) : Boolean; external 'SetFileAttributesA@kernel32.dll stdcall';
...
..
.


2) Auf den Event-Handler von Inno-Setup reagieren, wenn ein Installations-Schritt geändert wird.
Was hier interessiert, ist der Schritt nach der Installation (ssPostInstall):

Delphi-Quellcode:
// Installation-Schritt-Wechsel (interner Inno Setup Event-handler)
procedure CurStepChanged(CurStep: TSetupStep);
begin
  // Post install steps
  if CurStep = ssPostInstall then
  begin
     // Hier die Readonly Flags löschen, z.B.
     SetFileAttributes(ExpandConstant('{app}\MyProgram.exe'),FILE_ATTRIBUTE_NORMAL);
  end;
end;
Danke. Ich habe dies nun eingebaut und ein wenig an meine Bedürfnisse angepaßt.
Es geeeeeht!!!!!!!!!!!!
Matthias
  Mit Zitat antworten Zitat