Ветеран
Сообщения: 1133
Благодарности: 581
|
Профиль
|
Отправить PM
| Цитировать
Цитата Berline:
вот "мусор" в реестре как раз надо оставить... а ярлыки, и папку с программой снести »
|
как говорят: хозяин - барин...
Пример
Код:
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
AllowNoIcons=yes
OutputDir=.
;отключаем сообщение о существовании папки
DirExistsWarning=no
;не использовать папку, которую выбрал пользователь в прошлый раз
UsePreviousAppDir=no
;не использовать группу меню Пуск, выбранную пользователем при предыдущей установке
UsePreviousGroup=no
;не использовать тип установки, выбранный пользователем в прошлый раз
UsePreviousSetupType=no
;не использовать задания, которые выбрал пользователь при прошлой установке
UsePreviousTasks=no
;имя пользователя, название организации и серийный номер, которые ввел пользователь при предыдущей установке
UsePreviousUserInfo=no
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[InstallDelete]
; делаем пустую команду, чтоб выполнить код перед установкой
Name: ''; Type: files; BeforeInstall: DeleteAppAndLnk
[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:ProgramOnTheWeb,My Program}; Filename: http://www.example.com/
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
Name: {commondesktop}\My Program; Filename: {app}\MyProg.exe; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\My Program; Filename: {app}\MyProg.exe; Tasks: quicklaunchicon
[Run]
Filename: {app}\MyProg.exe; Description: {cm:LaunchProgram,My Program}; Flags: nowait postinstall skipifsilent
[code]
// узнаём путь к папке
function GetGroupPath: string;
var
i, k: Integer;
s: string;
begin
s:= ExpandConstant('{group}');
repeat
if s[Length(s)] <> '\' then
Delete(s, Length(s), 1);
until s[Length(s)] = '\';
Result:= s;
end;
procedure DeleteAppAndLnk;
var
RootKey: Integer;
SubKeyName, ValueData: string;
begin
RootKey:= HKEY_LOCAL_MACHINE;
SubKeyName:= 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1';
if RegKeyExists(RootKey, SubKeyName) = True then begin
if RegValueExists(RootKey, SubKeyName, 'InstallLocation') = True then
// проверяем, куда была установлена программа
if RegQueryStringValue(RootKey, SubKeyName, 'InstallLocation', ValueData) = True then
ValueData:= Copy(ValueData, 1, Length(ValueData)-1);
// проверяем, существует ли папка
if DirExists(ValueData) = True then
// удаляем папку
DelTree(ValueData, True, True, True);
if RegValueExists(RootKey, SubKeyName, 'Inno Setup: Icon Group') = True then
// узнаём название группы
if RegQueryStringValue(RootKey, SubKeyName, 'Inno Setup: Icon Group', ValueData) = True then
// проверяем, существует ли папка в меню Пуск
if DirExists(GetGroupPath + ValueData) = True then
// если да, то удаляем папку
DelTree(GetGroupPath + ValueData, True, True, True);
// проверим рабочий стол
if FileExists(ExpandConstant('{commondesktop}\My Program.lnk')) = True then
DeleteFile(ExpandConstant('{commondesktop}\My Program.lnk'));
// проверим панель быстрого запуска
if FileExists(ExpandConstant('{userappdata}\Microsoft\Internet Explorer\Quick Launch\My Program.lnk')) = True then
DeleteFile(ExpandConstant('{userappdata}\Microsoft\Internet Explorer\Quick Launch\My Program.lnk'));
end;
end;
|
-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.
Отправлено: 21:55, 22-06-2009
| #988
|