web-dev-qa-db-fra.com

Comment démarrer un exe au démarrage de Windows

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

25
nightWatcher

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.

56
Badr Hari

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 
13
Jonathan

Vous pouvez ajouter votre application au registre pour l'exécuter au démarrage à

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ou
HKEY_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.

2
Quintin Robinson

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

2
Javi R

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.

1
Jon Hanna

É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).

0
Eight-Bit Guru

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.

0
fixagon

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à.

0
as-cii

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
0
Patric