2012-08-27 27 views
7

Estoy tratando de iniciar algunas aplicaciones para el usuario actual solo cuando Windows se inicia.Aplicación Run C# en Windows Inicio

puedo lograr esto con lo siguiente:

RegistryKey oKey = Registry.CurrentUser.OpenSubKey("Software", true); 
oKey = oKey.OpenSubKey("Microsoft", true); 
oKey = oKey.OpenSubKey("Windows", true); 
oKey = oKey.OpenSubKey("CurrentVersion", true); 
oKey = oKey.OpenSubKey("Run", true); 
oKey.SetValue("Application 1", "C:\\path\\to\\ap1.exe"); 
oKey.SetValue("Application 2", "C:\\path\\to\\ap2.exe"); 

Pero estoy tratando de ejecutar esto como parte de un proyecto de Visual Studio Installer. He agregado mi acción personalizada, el programa comienza como debería y el instalador funciona muy bien en XP.

En Windows 7, el instalador obtiene privilegios elevados, y hace todo menos insertar las entradas en el registro para el usuario actual. Sin embargo, inserta las entradas de registro cuando se ejecuta como una aplicación independiente (fuera del proyecto de instalador) y no obtiene privilegios elevados.

Lo único que puedo entender es que con los privilegios elevados, está tratando de insertar las entradas en la cuenta de Administradores en lugar del usuario actual? o hay algo más que me estoy perdiendo? y ¿hay otra manera en que pueda lograr mi objetivo aquí?

+0

¿me podría dar más información? o elabora tu meta por favor? – VIRA

+1

¿Qué pasa si obtienes 'Registry.LocalMachine.OpenSubKey()'? – wasyl

+0

No necesita ninguna acción personalizada para hacer esto. –

Respuesta

2

¿Hay alguna razón para no usar la carpeta de inicio para el usuario?

Es muy probable que el usuario sea el usuario con el que se está ejecutando el instalador. Si el usuario no es el administrador, el instalador elevado se ejecutará en el contexto del usuario que elevó el proceso.

Sería una opción más segura agregar su aplicación a la carpeta de inicio o agregar la clave de registro en el primer lanzamiento.

1

Si el instalador obtiene permisos elevados, ¿por qué escribir la configuración en HKCU? Escríbalo en HKLM en su lugar. Entonces tendrá efecto para todos los usuarios.

+0

'HCKU',' HKCU' misma diferencia! – ja72

+0

Sí, esa es una opción ... pero esperaba mantenerla para el usuario actual solo – C0NFUS3D

+2

La configuración de configuración específica del usuario está mejor configurada por la aplicación que por el instalador. –

Cuestiones relacionadas