hinzu Ich habe ein Programm, das als Desktop-Anwendung ausgeführt wird, aber auch als Windows-Dienst installiert werden kann. Die Installation erfolgt über die Schaltfläche "Als Dienst installieren" in der GUI. Der Event-Handler für diese Schaltfläche sieht wie folgt aus:Installieren Sie den Dienst und fügen Sie den Registrierungseintrag unter Vista +
ProcessStartInfo psi = new ProcessStartInfo("sc", "description " +
this.ServiceName + " \"" +
((AssemblyDescriptionAttribute)attributes[0]).Description + "\"")
psi.CreateNoWindow = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.Verb = "runas";
Process.Start(psi).WaitForExit();
Was Ich mag würde jetzt zu tun ist, einige zusätzliche Registrierungseinträge unter Mitsprache hinzuzufügen:
HKLM\SOFTWARE\MyCompany\Services
die auch erhöhte Privilegien benötigt. Aber wenn ich die gleiche Prozedur wie oben beschrieben mit dem Befehl "REG ADD" benutze, würde der UAC Dialog mehr als einmal erscheinen - und das will ich nicht.
Also, was ist der beste Weg, um einen Windows-Dienst zu installieren und einen Registrierungseintrag unter HKLM mit nur die UAC-Eingabeaufforderung einmal hinzuzufügen?
Danke für Ihre Antwort. Dies scheint die offensichtliche Lösung zu sein, aber ich möchte das vermeiden, weil der Code in einer gemeinsam genutzten Bibliothek ist. Es würde die Bereitstellung erschweren, wenn ich mich auf eine zusätzliche Komponente wie eine Batch-Datei oder eine Exe verlassen müsste. – Jeldrik