Имя пользователя:
Пароль:
 

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

Забанен


Сообщения: 3
Благодарности: 2

Профиль | Цитировать


Цитата Mafioza:
как ассоциировать файлы »
Смотри примеры в справке.
Делается примерно так
Ассоциация файлов

Пример 1
Код: Выделить весь код
[Registry]
Root: HKLM; Subkey: "Software\Classes\.w3m"; ValueType: string; ValueName: ""; ValueData: "WorldEdit.Scenario"; Flags: uninsdeletevalue
Root: HKLM; Subkey: "Software\Classes\WorldEdit.Scenario\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\WorldEdit.exe,2"; Flags: uninsdeletevalue
Root: HKLM; Subkey: "Software\Classes\WorldEdit.Scenario\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\World Editor.exe ""%1"""; Flags: uninsdeletevalue
Пример 2
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Registry]
Root: HKLM; Subkey: SOFTWARE\Classes\.v64; Check: CheckOption(0)
Root: HKLM; Subkey: SOFTWARE\Classes\.z64; Check: CheckOption(1)
Root: HKLM; Subkey: SOFTWARE\Classes\MP64; ValueType: string; ValueData: My Program; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\Classes\MP64\DefaultIcon; ValueType: string; ValueData: {app}\MyProgram.exe,0
Root: HKLM; Subkey: SOFTWARE\Classes\MP64\shell\open\command; ValueType: string; ValueData: {app}\MyProgram.exe %1

[ Code]
var
  Page: TInputOptionWizardPage;

procedure InitializeWizard();
begin
  Page := CreateInputOptionPage(wpSelectTasks,
  'Select File Extension Association', 'Which the file extension you would like to associate?',
  'Select the file extension you would like to associate with My Program,'#13#10'then click Next.',
  False, False);

  {0} Page.Add('.v64');
  {1} Page.Add('.z64');

Page.Values[0] := True;
end;

function CheckOption(OptionNum: integer): Boolean;
begin
  Result:= Page.Values[OptionNum];
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpReady then
    begin
    WizardForm.ReadyMemo.Lines.Add('');
      if Page.Values[1] or Page.Values[2] then
    WizardForm.ReadyMemo.Lines.Add('File extension association:');
      if Page.Values[1] then
    WizardForm.ReadyMemo.Lines.Add('      .v64');
      if Page.Values[2] then
    WizardForm.ReadyMemo.Lines.Add('      .z64');
  end;
end;


Пример 3

Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Types]
Name: full; Description: Полная установка
Name: cu stom_clean; Description: Пользовательская установка; Flags: iscustom

[Components]
Name: main; Description: Основные компоненты; Types: full custom_clean; Flags: checkablealone
Name: main\ass; Description: Установить ассоциации:; Types: full custom_clean; Flags: checkablealone
Name: main\ass\ani; Description: .ani; Types: full custom_clean

[Registry]
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani; ValueType: string; ValueName: ; ValueData: ; Components: main\ass\ani
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani; ValueType: string; ValueName: ProgID; ValueData: IrfanView.ani; Flags: uninsdeletevalue uninsdeletekeyifempty; Components: main\ass\ani

[ Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
  String: String;
begin
if (CurStep = ssInstall) and (IsComponentSelected('main\ass\ani') = False) then
  if (ExpandConstant('{ reg:HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani,ProgID}') = 'IrfanView.ani') or
    (ExpandConstant('{reg:HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani,ProgID}') = 'IrfanView.ANI') then
    begin
    RegDeleteValue(HKEY_CURRENT_ USER, 'Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani', 'ProgID')
    if (RegQueryStringValue(HKEY_CURRENT_ USER, 'Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani', '', String)) and (String = '') then
        RegDeleteValue(HKEY_CURRENT_ USER, 'Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani', '')
    RegDeleteKeyIfEmpty(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani')
    end
end;


Первый пример можно так же ассоциировать не только через HKLM но и HKCU. Это уж по личному усмотрению, кому как удобно.

Вкратце:
HKLM - идёт как общая расчитана на всех пользователей, т.е при таком условии даже новый созданный юзер на компе автоматически ассоциируется с программой.
HKCU - В основном расчитана на одного пользователя, т.е при каком пользователе программа ассоциировалась то на нём и останется, на других зверей не повлеяет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:37, 16-08-2012 | #630