Цитата wolkow70:
Никто не знает как в скрипте NSIS вызвать LaunchAdvancedAssociationUI для заданной программы? »
|
Вот сам уже нашел способ:
http://ask.make-money-article.com/que/11179945
!include LogicLib.nsh
!define CLSCTX_INPROC_SERVER 0x1
!define CLSID_ApplicationAssociationRegistrationUI {1968106d-f3b5-44cf-890e-116fcb9ecef1}
!define IID_IApplicationAssociationRegistrationUI {1f76a169-f994-40ac-8fc8-0959e8874710} ;[Vista+]
section
;NSIS has called CoInitialize
System::Call 'OLE32::CoCreateInstance(g "${CLSID_ApplicationAssociationRegistrationUI}",i 0,i ${CLSCTX_INPROC_SERVER},g "${IID_IApplicationAssociationRegistrationUI}",*i.r1)i.r0' ;ptr is now in $1 and hr in $0
${If} $1 <> 0
System::Call '$1->3(w "Internet Explorer")i.r0' ;IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI
System::Call '$1->2()' ;IUnknown::Release
${EndIf}
sectionend
Вместо "Internet Explorer" можно подставлять наименование программы, зарегистрированной в реестре в ключе
HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
Цитата MKN:
А ты, как мне кажется, хочешь замутить канитель, именно применимо к ассоциированию в Win8 ? (а для других ОС и мутить нечего - всё ясно и традиционно...) »
|
Да, чтобы при определении Win8 в конце установки открывался интерфейс ассоциаций для конкретной программы.