Не ассоциируются файлы

Shegorat

Lord of Madness
Администратор
Приветствую. А с чем они должны ассоциироваться? И какие файлы?
 

Xabib2302

Новичок
Те которые прописываются реестре include\Registry.iss
Код:
; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.AniCursor1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.AniCursor; ValueType: string; ValueData: "Animated Cursor"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.AniCursor\DefaultIcon; ValueType: string; ValueData: "%1"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.AniCursor\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.AniCursor\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.AniCursor\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.AniCursor\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;

; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.Cursor1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Cursor; ValueType: string; ValueData: "Cursor"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Cursor\DefaultIcon; ValueType: string; ValueData: "%1"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Cursor\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Cursor\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Cursor\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Cursor\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;

; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.Icon1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon; ValueType: string; ValueData: "I"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\DefaultIcon; ValueType: string; ValueData: "%1"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\shellex\{{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}; ValueType: string; ValueData: "{{43372ada-945b-4713-82db-d217b338ae6f}"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Icon\shellex\{{e357fccd-a995-4576-b01f-234630154e96}; ValueType: string; ValueData: "{{43372ada-945b-4713-82db-d217b338ae6f}"; Check: not IsInPortableMode; Flags: uninsdeletekey;

; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.Image1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Image; ValueType: string; ValueData: "Image"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Image\DefaultIcon; ValueType: string; ValueData: """{app}\IconWorkshop.exe"",10"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Image\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Image\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Image\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Image\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;

; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.Library1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Library; ValueType: string; ValueData: "Icon Library"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Library\DefaultIcon; ValueType: string; ValueData: "%1"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Library\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Library\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Library\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.Library\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;

; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.MacIcon1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacIcon; ValueType: string; ValueData: "Macintosh® OS Icon"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacIcon\DefaultIcon; ValueType: string; ValueData: """{app}\IconWorkshop.exe"",14"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacIcon\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacIcon\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacIcon\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacIcon\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;

; Imported Registry File: "C:\Users\Admin\Новая папка\Axialis.IconWorkshop.6.MacLibrary1.reg"
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacLibrary; ValueType: string; ValueData: "Macintosh® OS Icon Library"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacLibrary\DefaultIcon; ValueType: string; ValueData: """{app}\IconWorkshop.exe"",5"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacLibrary\shell; ValueType: string; ValueData: "Open.IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacLibrary\shell\Edit\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacLibrary\shell\Open.IconWorkshop; ValueType: string; ValueData: "Open withAxialis IconWorkshop"; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCR; Subkey: Axialis.IconWorkshop.6.MacLibrary\shell\Open.IconWorkshop\command; ValueType: string; ValueData: """{app}\IconWorkshop.exe"" ""%1"""; Check: not IsInPortableMode; Flags: uninsdeletekey;
 

Shegorat

Lord of Madness
Администратор
А где связь между приложением и самим расширением, который находится в "HKEY_CURRENT_USER\Software\Classes"?
В HKCR регистрируется команды для выполнения и сам идентификатор приложения. а в "HKEY_CURRENT_USER\Software\Classes" они связываются для соответствующего расширения.
Типа
Код:
[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7]
@="Bitmap File"
"AlwaysShowExt"="1"

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\DefaultIcon]
@="\"%1\",1"

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\shell]

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\shell\Open]

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\shell\Open\Command]
@="\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\devenv.exe\" /dde"

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\shell\Open\ddeexec]
@="Open(\"%1\")"

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\shell\Open\ddeexec\Application]
@="VisualStudio.15.0"

[HKEY_CLASSES_ROOT\VisualStudio.bmp.84cf8ef7\shell\Open\ddeexec\Topic]
@="system"


[HKEY_CURRENT_USER\Software\Classes\.bmp\OpenWithProgids]
"VisualStudio.bmp.84cf8ef7"=""
"AppX2jm25qtmp2qxstv333wv5mne3k5bf4bm"=hex(0):
"AppX43hnxtbyyps62jhe9sqpdzxn1790zetc"=hex(0):
"VisualStudio.bmp.bfcb2891"=""
 

Xabib2302

Новичок
А параметр ChangesAssociations=True не должен помочь изменить ассоциацию
 

Shegorat

Lord of Madness
Администратор
А параметр ChangesAssociations=True не должен помочь изменить ассоциацию
Этот флаг посылает системе уведомление, что изменились ассоциации файлов. Что позволяет перестроить кэш приложений без перезагрузки. Но сам он никак не может менять ассоциации.
 

Xabib2302

Новичок
Как понимаю так должно выглядеть?

Код:
Root: HKCU; Subkey: SOFTWARE\Classes\.ani\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.AniCursor; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.cur\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.Cursor; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.ico\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.Icon; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.icl\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.Library; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.icns\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.MacIcon; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.bin\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.MacIcon; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.rsc\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.MacIcon; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.rsrc\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.MacIcon; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
Root: HKCU; Subkey: SOFTWARE\Classes\.icontainer\OpenWithProgids; ValueType: none; ValueName: Axialis.IconWorkshop.6.MacLibrary; ValueData: 0; Check: not IsInPortableMode; Flags: uninsdeletekey;
 

Xabib2302

Новичок
И допустим я не хочу чтобы присваивалась программа по умолчанию, но хочу чтобы был пункт в контекстном меню "Открыть с помощью"
 

Shegorat

Lord of Madness
Администратор
И допустим я не хочу чтобы присваивалась программа по умолчанию, но хочу чтобы был пункт в контекстном меню "Открыть с помощью"
Если ключи указаны в OpenWithProgids - так и будет. Единственное, если там будет только одно значение, то по двойному клику будет автоматом открываться эта программа.

Как понимаю так должно выглядеть?
Да, только
Код:
ValueType: string; ValueData: "";
Хотя и так должно сработать
 

Xabib2302

Новичок
Подскажите такой вопрос. Можно ли создать бекап реестра перед тем как внести изменения и потом после деинсталляции программы вернуть обратно. Как здесь в случае AIMP
Без имени-1.jpg
 

Andreo Fadio

Старожил
Можно ли создать бекап реестра перед тем как внести изменения и потом после деинсталляции программы вернуть обратно. Как здесь в случае AIMP
Можно.
Код:
procedure BackupRegistryKey(F,G:String);
var
H: String;
begin
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\'+F, '', H) then
  begin
   RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\'+F, G, H);
  end;
end;

procedure RestoreRegistryKey(F,G:String);
var
H: String;
begin
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\'+F, G, H) then
  begin
   RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\'+F, '', H);
   RegDeleteValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\'+F, G);
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
  begin
   BackupRegistryKey('.mp3','Test.Backup');
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
  begin
   RestoreRegistryKey('.mp3','Test.Backup');
  end;
end;
 
Сверху