AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

mit Innosetup Dateiattribute ändern

Ein Thema von zeras · begonnen am 1. Jul 2010 · letzter Beitrag vom 4. Jul 2010
Antwort Antwort
blackfin
(Gast)

n/a Beiträge
 
#1

AW: mit Innosetup Dateiattribute ändern

  Alt 2. Jul 2010, 08:36
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;

Geändert von blackfin ( 2. Jul 2010 um 08:39 Uhr)
  Mit Zitat antworten Zitat
zeras

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

AW: mit Innosetup Dateiattribute ändern

  Alt 4. Jul 2010, 19: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
Antwort Antwort


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:12 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