Comment trouver windows service exe chemin
J'ai un service windows et j'ai besoin de créer un répertoire pour stocker des infos. Le chemin doit être relatif au service windows fichier exe.
Comment pouvez obtenir ce fichier exe chemin ?
- Je ne suis pas développeur Windows, mais êtes-vous sûr de vouloir cela? N'a pas ces infos appartiennent dans le répertoire personnel de l'utilisateur, ou que de
LocalService
? - Je ne suis pas un Développeur Unix, mais le système de services (daemons) le stockage de fichiers dans les répertoires personnels des sons carrément fou.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Domaine d'application.CurrentDomain.BaseDirectory
Astuce: Si vous voulez trouver le chemin de démarrage de windows installée service, rendez-vous ici à partir du registre .
Il y a des clefs à propos de windows service
Pour obtenir de chemin d'accès pour le service, vous pouvez utiliser des objets de Gestion.
ref: https://msdn.microsoft.com/en-us/library/system.management.managementobject(v=vs. 110).aspx
http://dotnetstep.blogspot.com/2009/06/get-windowservice-executable-path-in.html
var config = System.Configuration.ConfigurationManager.OpenExeConfiguration(svcPath)
et de vérifier ensuiteconfig.HasFile
etconfig.FilePath
variables.Au lieu d'utiliser un répertoire relatif à l'exécutable, et donc avoir besoin des privilèges d'administrateur, pourquoi ne pas utiliser les données de l'application répertoire, qui est accessible par le biais de
De cette façon, votre application n'a pas besoin d'accès en écriture à son propre répertoire d'installation, qui vous rend plus sûr.
Essayer cette
svchost.exe est l'exécutable qui s'exécute à votre service qui est dans system32. Donc nous avons besoin pour obtenir le module qui est en cours d'exécution par le processus.
Le répertoire par défaut pour un service windows est le dossier System32. Dans votre service, cependant, vous pouvez changer le répertoire courant vers le répertoire que vous avez spécifié dans le service de l'installation en procédant comme suit dans votre Démarrage:
Edit: une même méthode plus simple (mais je n'ai pas encore testé):
Cela a fait l'affaire pour moi
Si vous voulez obtenir l'accès de dossier Program Files ou toute autre utilisation de la programmation, vous devez utiliser le code ci-dessous qui est de fournir aux droits de dossier spécifique.