[.Net] Exécuter une application DotNet au démarrage de Windows
Pour un de mes projets (EasyLight, plus de détails prochainement) qui mêle Arduino et DotNet, j’ai eu à développer pas mal de fonctions qui peuvent être réutilisées dans pas mal de projets.
Une des choses que je suis souvent amené à faire est de lancer une application DotNet au démarrage de Windows.
Pour démarrer automatiquement votre application, vous avez plusieurs solutions:
- Créer un service Windows qui exécutera votre application au démarrage de Windows. Le problème de cette solution est qu’elle n’est utilisable que pour des applications en tâche de fond sans interface graphique.
- Ajouter une clé dans la base de registre qui exécutera votre logiciel DotNet une fois que Windows est lancé.
C’est cette seconde méthode que j’utilise sur plusieurs de mes logiciels. Voici la fonction qui permet de démarrer automatiquement votre logiciel au démarrage de Windows:
'Fonction qui permet le demarre de l'executable en meme temps que Windows
Public Sub CheckAutoStart()
Dim Assembly As Assembly = Application.ResourceAssembly
Dim ExePath As String = (New Uri(Assembly.GetExecutingAssembly().GetName().CodeBase)).LocalPath
Dim AssemblyName As String = Split(Assembly.FullName, ",").First
Dim RegistryKeyName As RegistryKey
Try
RegistryKeyName = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", True)
If My.Settings.AutoStart Then
RegistryKeyName.SetValue(AssemblyName, ExePath)
Else
If RegistryKeyName.GetValue(AssemblyName) IsNot Nothing Then
RegistryKeyName.DeleteValue(AssemblyName)
End If
End If
Catch ex As Exception
'on ne fait rien
End Try
End Sub