Vitaly Perov wrote:
Changelog: cmd.exe: MSI packages execution implemented
That doesn't look right. You sure this information is hard-coded into cmd.exe and it's not coming from the registry CLASSES hive?
Vitaliy
Vitaliy Margolen wrote:
I haven't found any information about how it implemented in Windows. I use the similar *.com and *.bat way of execution *.msi. I don't sure, that it is correct, but it works! I'll be grateful if you have any information/links about how it should work
Vitaly Perov [mailto:vitperov@etersoft.ru] wrote:
What about the normal Windows file extension registry?
HKCR.msi REG_SZ Msi.Package HKCR\Msi.Package REG_SZ Windows Installer Package HKCR\Msi.Package EditFlags REG_BINARY 00 00 00 01 HKCR\Msi.Package FriendlyTypeName REG_EXPAND_SZ @%SystemRoot%\System32\msi.dll,-34 HKCR\Msi.Package\DefaultIcon REG_SZ C:\WINDOWS\system32\msiexec.exe,0 HKCR\Msi.Package\shell REG_SZ Open,Repair,Uninstall
This for Install:
HKCR\Msi.Package\shell\Open REG_SZ &Install HKCR\Msi.Package\shell\Open MUIVerb REG_EXAPND_SZ @%SystemRoot%\System32\msi.dll,-36 HKCR\Msi.Package\shell\Open\command REG_EXPAND_SZ "%SystemRoot%\System32\msiexec.exe" /i "%1" %*
And similar for Repair and Uninstall!
I would think that at some point cmd.exe just should call ShellExecuteEx for file types it doesn't know about and get the registry handling for free in that way. Possibly the import of shell32 would need to be done dynamically or delayed in that case.
Rolf Kalbermatter