Shift85
Старожил
Подскажите пожалуйста как сделать тень для инсталлятора...
Вокруг маски... http://rghost.ru/52786114
Вокруг маски... http://rghost.ru/52786114
#define NeedSize 4000
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[B][[/B]Code]
var
FreeMB, TotalMB: Cardinal;
FreeSpaceLabel: TLabel;
function NumToStr(Float: Extended): String;
begin
Result:= format('%.2n', [Float]);
StringChange(Result, ',', '.');
while (Result[Length(Result)] = '0') or ((Result[Length(Result)] = '.') and (Pos('.', Result) > 0)) do
SetLength(Result, Length(Result)-1);
end;
function MbOrTb(Float: Extended): String;
begin
if Float < 1024 then Result := NumToStr(Float) + ' Мб' else
if Float/1024 < 1024 then Result := NumToStr(Float/1024) + ' Гб' else
Result := NumToStr(Float/(1024 * 1024)) + ' Тб';
end;
procedure MyDirChange(Sender: TObject);
begin
WizardForm.NextButton.Enabled := False;
if Length(ExtractFileDrive(WizardForm.DirEdit.Text)) = 0 then
FreeSpaceLabel.Caption := 'Доступно места на диске: -----' else
if RemoveBackslash(WizardForm.DirEdit.Text) = ExtractFileDrive(WizardForm.DirEdit.Text) then
FreeSpaceLabel.Caption := 'Нельзя ставить в корень диска!' else
begin
GetSpaceOnDisk(ExtractFileDrive(WizardForm.DirEdit.Text), True, FreeMB, TotalMB);
FreeSpaceLabel.Caption := 'Доступно места на диске: ' + MbOrTb(FreeMB);
WizardForm.NextButton.Enabled := FreeMB > {#NeedSize};
end;
end;
procedure InitializeWizard;
begin
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do begin
AutoSize := False;
SetBounds(ScaleX(0), ScaleY(140), ScaleX(300), ScaleY(20));
Parent := WizardForm.SelectDirpage;
end;
WizardForm.DirEdit.OnChange := @MyDirChange;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then begin
MyDirChange(nil)
end;
end;
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini '), ['[.ShellClassInfo]',
'IconFile=WEI.exe',
'IconIndex=0'], False)
type
#ifdef UNICODE
#define A "W"
PChar = PAnsiChar;
#else
#define A "A"
#endif
function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall';
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
SetFileAttributes(PChar(ExpandConstant('{app}\Desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
end;
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//[/SPOILER]
ilzok17
[Setup]
AppName=Иконка
AppVerName=Иконка
DefaultDirName={pf}\Иконка
DefaultGroupName=Иконка
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Dirs]
Name: "{app}"; Attribs: system; AfterInstall: CreateIni();
[Files]
Source: icon.ico; DestDir: {app}
Код:type #ifdef UNICODE #define A "W" PChar = PAnsiChar; #else #define A "A" #endif function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall'; //******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************// procedure CreateIni(); begin SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]', 'IconFile=icon.ico', 'IconIndex=0'], False) end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssPostInstall then begin SetFileAttributes(PChar(ExpandConstant('{app}\Desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM); end; end; //******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//[/SPOILER][/QUOTE] Ещё раз спасибо,но ты меня не понял:я имею ввиду что надо прописать в коде что бы файл Desktop.ini,который создаётся инсталлятором был скрытым(невидимым).А с остальным всё в порядке - папка появляется уже с моим значком,но вот файл Desktop.ini(как в скачанном по ссылке ,так и в этом коде) - обычный(видимый).
vint56,я тебе уже наверно надоел,но перепробовал по всякому,всё равно файл Desktop.ini видимыйilzok17 ну я и так скрыл Desktop.ini который создаёт установщик а ты с начало удали старую папку и установи заново
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;
[Setup]ilzok17 покажи скрипт
type
#ifdef UNICODE
#define A "W"
PChar = PAnsiChar;
#else
#define A "A"
#endif
function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall';
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ************************************************** *//
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
SetFileAttributes(PChar(ExpandConstant('{app}\Desk top.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
end;
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ************************************************** *//