Je trouve ce joli bout de code en ligne:Obtention du programme à exécuter au démarrage à partir du code C#. Réglage du Registre Run « true » ne fonctionne pas aussi bien
rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
Ce qui fonctionne très bien, mais hélas sur Windows 7 et Vista Je soupçonne, il se bloque parce que ce n » J'ai la permission d'écrire là-bas.
donc je recherche (sur stackoverflow bien sûr) comment éviter cela, la méthode la plus rapide:
rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
assez simple! Bien qu'il reste deux problèmes. On est avec les deux méthodes (sur une XP Box qui est), le programme pense que son chemin relatif est quelque part dans le dossier C: \ windows maintenant ... donc I.e. Le deuxième problème est, sur Windows 7, mon programme ne démarrera pas avant que je me connecte. Je veux qu'il démarre en arrière-plan si possible avant que quiconque ne se connecte.
C'est un .exe simple qui se déroule dans la barre des tâches lors de son fonctionnement. Je ne voulais pas créer cette monstruosité d'installateur pour contourner ces problèmes d'administration et de cheminement.
Je pense que je devrais le créer en tant que service (aucune idée de comment le faire) pour le faire démarrer lorsque la machine redémarre avant que quelqu'un se connecte. Deuxièmement, pour faire cela, je suis sûr que je dois comprendre les privilèges d'administration, et puisque je ne veux pas avoir à approuver le programme à exécuter chaque fois qu'il démarre, il semble que je devrais comprendre ses privilèges d'administration au moment de l'installation, mais hélas pas d'installateur.
Donc juste curieux de savoir quelles routes je pourrais prendre pour que cela fonctionne. Je peux même le souffrir seulement après que l'utilisateur se connecte, mais mes méthodes actuelles qui fonctionnent de cette façon vraiment bousiller le chemin de mon programme, car il essaie d'écrire des choses dans un nouveau répertoire (pas celui que j'ai initialement lancé le EXE de). Etc ... et je n'ai aucune idée de comment régler ce problème.
Il n'y a aucun systray jusqu'à ce que quelqu'un se connecte. – SLaks