Duplicata possible:
Comment mettre un fichier exe dans le démarrage de Windows
Supposons que j'ai créé une application en C #, une fois que je l'ai installée, je veux qu'elle s'exécute en arrière-plan chaque fois que Windows démarre, ou vous pouvez dire qu'un utilisateur se connecte à son compte Windows. Existe-t-il un moyen de le faire? Sauf écrire un service Windows?
L'application affiche essentiellement des messages lorsqu'un certain événement est déclenché Merci
Ajouter au raccourci vers le dossier de démarrage de Windows:
Environment.GetFolderPath(Environment.SpecialFolder.Startup)
Ou ajoutez au registre, quelque chose comme ceci:
RegistryKey add = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
add.SetValue("Your App Name", "\"" + Application.ExecutablePath.ToString() + "\"");
Vous pouvez remplacer CurrentUser par LocalMachine si vous souhaitez qu'il s'exécute avec chaque utilisateur. Merci à Aidiakapi.
Cela peut être fait en utilisant le registre Windows. Je vous recommande de vérifier ces clés de registre.
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
Vous pouvez ajouter votre application au registre pour l'exécuter au démarrage à
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ouHKEY_CURREN_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ou vous pouvez l'ajouter au dossier de démarrage du système.
Ce sont probablement les options les plus courantes/les plus faciles si vous ne voulez pas écrire un service.
Vous devez configurer une nouvelle clé dans le registre pointant vers votre exécutable.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Plus d'informations dans ce lien http://msdn.Microsoft.com/en-us/library/aa376977 (v = vs.85) .aspx
Le moyen le plus simple est de le mettre ou un raccourci dans %userprofile%\Start Menu\Programs\Startupdirectory
ou %allusersprofile%\Start Menu\Programs\Startup
Les clés de registre HKLM\Software\Microsoft\Windows\CurrentVersion\Run
(tous les utilisateurs) et HKCU\Software\Microsoft\Windows\CurrentVersion\Run
(utilisateur actuel uniquement) sera également diffusé.
L'installer en tant que service est souvent une bonne approche, mais pas si vous allez être interactif comme vous le dites.
Étant donné que personne d'autre ne l'a mentionné, je soulignerai que vous pouvez également y parvenir en utilisant une tâche planifiée dont le déclencheur est "Au démarrage du système". Cependant, je n'ai pas essayé cela avec une application qui nécessite une interaction avec l'interface utilisateur - cela fonctionne pour un processus d'arrière-plan, mais je soupçonne que cela ne fonctionnerait pas avec quelque chose qui a besoin d'un contexte de bureau (car il n'y en a pas jusqu'à ce qu'un utilisateur se connecte- sur).
Vous pouvez écrire le Path
dans l'exécutable dans le Registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Et il sera exécuté à chaque démarrage de Windows.
Vous pouvez mettre un raccourci vers l'application dans C:\Users\@username@\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
.
Utilisez-vous le projet d'installation de Visual Studio? Si oui, vous pouvez définir le raccourci directement à partir de là.
Eh bien, cela semble vraiment que vous devriez utiliser un "service Windows".
Il existe d'autres options telles que l'inclusion d'un raccourci vers EXE dans le dossier "Démarrage" du menu Programmes ("Tous les utilisateurs" si vous souhaitez qu'il s'exécute pour tous les utilisateurs de ce système).
Une autre option serait d'utiliser le registre Windows. Vous pouvez ajouter une entrée à "Run" qui pointe vers l'exe:
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce