Qual é a diferença entre os parâmetros / n e / i do RegSvr32.exe?
Para registrar um servidor COM, executamos algo como no modo elevado:
regsvr32.exe com.dll
Para realizar o registro por usuário, execute na conta do usuário:
regsvr32.exe /n /i:user com.dll
O regsvr32.exe suporta estes parâmetros:
/u - Unregister server
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll uninstall
/n - do not call DllRegisterServer; this option must be used with /i
/s – Silent; display no message boxes (added with Windows XP and Windows Vista)
Ao criar um servidor COM no Delphi, esses métodos foram exportados:
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer,
DllInstall;
Eu noto que isso vai acontecer:
"regsvr32.exe com.dll" invoque DllRegisterServer."regsvr32.exe / u com.dll" invoque DllUnregisterServer."regsvr32.exe / n / i: usuário com.dll" invoque o DllInstall."regsvr32.exe / u / n / i: usuário com.dll" invoque o DllInstall.Eu sou confuso com parâmetros / n e / i, bem como DllUnregisterServer e DllInstall. Existe algum diferente?
Além disso, por que "/ u / n / i: user" invoca o Dllinstall? Percebi que a entrada de registro correspondente em "HKEY_CURRENT_USER \ Software \ Classes" foi removida.