Y at-il un moyen d'obtenir le nom du service de C# que le service actuel a été enregistré lors de son installation.Nom du service courant au cas où le même exe a été installé que plusieurs services
Par exemple, j'enregistrer le même service à deux reprises:
sc.exe create ServiceName1 binPath= D:\myservice.exe
sc.exe create ServiceName2 binPath= D:\myservice.exe
Dans mon service, je veux vraiment savoir si je suis ServiceName1 ou ServiceName2. Mais il semble qu'il n'y ait aucun moyen de le faire.
J'ai essayé d'appeler ServiceBase.ServiceName
avant la mise, mais il est tout simplement vide.
J'ai essayé ServiceController.GetServices().Where(svc => svc.ServiceHandle.DangerousGetHandle() == myservice.ServiceHandle)
mais il semble avoir une autre poignée, donc ils ne sont pas compareable.
Il existe un programme spécial appelé SRVANY.exe
et qui semble être en mesure de le faire. La question est de savoir comment il le fait.
Je peux le voir est une copie de http://stackoverflow.com/questions/1841790/how-can-a-windows-service-determine-its-servicename – Cine