2012-06-16 19 views
7

Quiero que mi aplicación (un WPF Window) se inicie en el inicio de Windows. Intenté diferentes soluciones, pero parece que nadie funciona. ¿Qué tengo que escribir en mi código para hacer esto?Ventana de inicio en el inicio de Windows

+1

¿Cuáles son las soluciones que ha probado? – BoltClock

+0

Intenté escribir un registro de claves: HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run – Nick

+0

¿Y tiene algún registro? En cualquier caso, ¿qué almacena en la clave de registro? Esa solución debería funcionar. –

Respuesta

13

Tiene razón cuando dice que debe agregar una clave al registro.

Agregar una clave para:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

si desea iniciar la aplicación para el usuario actual.

O:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

Si desea iniciarlo para todos los usuarios.

Por ejemplo, a partir de la aplicación para el usuario actual:

var path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; 
RegistryKey key = Registry.CurrentUser.OpenSubKey(path, true); 
key.SetValue("MyApplication", Application.ExecutablePath.ToString()); 

basta con sustituir la segunda línea línea con

RegistryKey key = Registry.LocalMachine.OpenSubKey(path, true); 

si desea iniciar automáticamente la aplicación para todos los usuarios en el arranque de Windows .

Simplemente elimine el valor del registro si ya no desea iniciar la aplicación automáticamente.

Como tal:

var path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; 
RegistryKey key = Registry.CurrentUser.OpenSubKey(path, true); 
key.DeleteValue("MyApplication", false); 

fue probada Este código de ejemplo para una aplicación de WinForms. Si necesita determinar la ruta al ejecutable para una aplicación WPF, pruebe lo siguiente.

string path = System.Reflection.Assembly.GetExecutingAssembly().Location; 

basta con sustituir "Application.ExecutablePath.ToString()" con la ruta a su ejecutable.

+0

[Aplicación] (http://msdn.microsoft.com/en-us/library/system.windows.application_members (v = vs.90)) no tiene ExecutablePath. – Nick

+0

Este código de ejemplo es para una aplicación de Windows Forms. Debe obtener la ruta al ejecutable de una manera diferente para las aplicaciones WPF. –

+0

¡Funciona! Si quiero eliminar este comportamiento, ¿tengo que eliminar la clave? ¿Podrías mostrarme cómo? – Nick

Cuestiones relacionadas