Ich versuche programmgesteuert einen Dienst von innerhalb einer in C# (in .net 4.0) geschriebenen Hilfsanwendung neu zu starten, aber ich erhalte eine Berechtigungsverletzung, wenn ich die EXE ausführe, indem ich bei Klicken mit der rechten Maustaste doppelklicke und "als Administrator ausführen" funktioniert .UAC oder Userlevel wie man es bewältigt!
Aber warum brauche ich das die Benutzer sind lokale Admins ?!
Ich möchte, dass die App normal ausgeführt wird und nur Administratorrechte anfordern, wenn der Benutzer auf die Schaltfläche klickt, um den Dienst neu zu starten. Kann das gemacht werden?
Die Lösung muss auf XP, Vista und Windows arbeiten 7.
Ich verwende diesen Code aus http://www.csharp-examples.net/restart-windows-service/
public static void RestartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
int millisec1 = Environment.TickCount;
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
// count the rest of the timeout
int millisec2 = Environment.TickCount;
timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2-millisec1));
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
// ...
}
}
das klingt nach einem guten ansatz danke ich werde es morgen versuchen und du weißt wie ich weitergehe. Prost. – Adrian
+1 Und die +1 ist nicht von der OP (noch): P –
Rubuns der Patient! Und nicht einmal seine Lösung! Danke M0sa Ich habe es gewählt und es als beantwortet geantwortet. gerade nicht in den 1ms, die rubans hätten mögen !!! – Adrian