Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 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