¿Cuál es la diferencia entre los parámetros / n y / i de RegSvr32.exe?
Para registrar un servidor COM, ejecutamos algo así como en modo elevado:
regsvr32.exe com.dll
Para realizar el registro por usuario, ejecute en cuenta de usuario:
regsvr32.exe /n /i:user com.dll
regsvr32.exe soporta estos 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)
Cuando creamos un servidor COM en Delphi, estos métodos fueron exportados:
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer,
DllInstall;
Me doy cuenta de que esto sucederá:
"regsvr32.exe com.dll" invoke DllRegisterServer."regsvr32.exe / u com.dll" invoke DllUnregisterServer."regsvr32.exe / n / i: user com.dll" invoke DllInstall."regsvr32.exe / u / n / i: user com.dll" invoke DllInstall.Estoy confundido con los parámetros / n y / i, así como DllUnregisterServer y DllInstall. ¿Hay algo diferente?
Además, ¿por qué "/ u / n / i: user" invoca Dllinstall? Noté que se eliminó la entrada de registro correspondiente en "HKEY_CURRENT_USER \ Software \ Classes".