2012-06-16 19 views
7

Desidero che la mia applicazione (WPF Window) venga avviata all'avvio di Windows. Ho provato diverse soluzioni, ma nessuno sembra funzionare. Cosa devo scrivere nel mio codice per fare questo?Avvio finestra all'avvio di Windows

+1

Quali sono le soluzioni che hai provato? – BoltClock

+0

Ho provato a scrivere un registro chiave: HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run – Nick

+0

E avete qualche registrazione? In ogni caso, cosa memorizzi nella chiave di registro? Quella soluzione dovrebbe funzionare. –

risposta

13

Si ha ragione quando si dice che è necessario aggiungere una chiave al registro.

aggiungere una chiave al:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

se si desidera avviare l'applicazione per l'utente corrente.

Oppure:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

Se si desidera iniziare per tutti gli utenti.

Per esempio, si avvia l'applicazione per l'utente corrente:

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

Basta sostituire la seconda linea linea con

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

se si desidera avviare automaticamente l'applicazione per tutti gli utenti all'avvio di Windows .

Basta rimuovere il valore di registro se non si desidera più avviare automaticamente l'applicazione.

Come tale:

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

Questo codice di esempio è stato testato per un'applicazione WinForms. Se è necessario determinare il percorso dell'eseguibile per un'app WPF, provare di seguito.

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

Basta sostituire "Application.ExecutablePath.ToString()" con il percorso del file eseguibile.

+0

[Applicazione] (http://msdn.microsoft.com/en-us/library/system.windows.application_members (v = vs90)) non ha ExecutablePath. – Nick

+0

Questo codice di esempio è per un'applicazione Windows Form. È necessario ottenere il percorso dell'eseguibile in un modo diverso per le app WPF. –

+0

Funziona! Se voglio rimuovere questo comportamento, devo rimuovere la chiave? Potresti mostrarmi come? – Nick

Problemi correlati