Я пытаюсь программно перезапустить службу из вспомогательного приложения, написанного на C# (на .net 4.0), но я получаю нарушение прав, если я запускаю EXE, дважды щелкнув, щелкнув правой кнопкой мыши и выполнив «работать как администратор» ,UAC или Userlevel, как его преодолеть!
Но зачем мне эти пользователи являются локальными администраторами ?!
Я хочу, чтобы приложение запускалось нормально и только запрашивало права администратора, когда пользователь нажимает кнопку, чтобы перезапустить службу. Это можно сделать?
Решение должно работать на XP, Vista и окна 7.
я использую этот код из 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
{
// ...
}
}
это звучит неплохо, спасибо, я попробую завтра, и вы знаете, как я нахожусь. веселит. – Adrian 2010-11-26 00:06:23
+1 И +1 не от OP (пока): P – 2010-11-26 11:43:45