Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
20-02-2008 07:06 | Сообщение от автора вопроса
Большое спасибо.
Видимо, вариант с шелл апи всё же проще
маленькое замечание на тему "можно ли программно":
программно можно ВСЁ, т.к. кликами мышки просто запускаются на выполнение куски некоторого программного кода... и как минимум всегда можно сЪэмулировать такое нажатие кнопки мыши (кнопки клавиатуры и пр.) (если не удается найти как "напрямую" вызвать требуемый функционал)
PS: метод ShellExecute описат (согласно кнопке F1) в модуле ShellAPI
if (Ctrl=SERVICE_CONTROL_SHUTDOWN) or (Ctrl=SERVICE_CONTROL_STOP) or
(Ctrl=SERVICE_CONTROL_PAUSE)
then Access:=SERVICE_STOP or SERVICE_START or SERVICE_PAUSE_CONTINUE
else Access:=SERVICE_USER_DEFINED_CONTROL;
hSvc:=OpenService(hSCM, constGrabSverviceName, Access);
if (hSCM=0) or (hSvc=0)
then begin
LogErrMessage('Cannot open service in SendCtrlRequestToSelfOK:');
LogErrMessage('Os error: '+GetErrorMessage(GetLastError()));
LogErrMessage('hSCM='+IntToStr(hSCM)+', hSvc='+IntToStr(hSvc));
end
else
if not ControlService(hSvc, Ctrl, SvcStatusRec)
then begin
LogErrMessage('Cannot send control request to service in SendCtrlRequestToSelfOK:');
LogErrMessage('Last known OS error: '+GetErrorMessage(GetLastError()));
exit;
end
else result:=true;
if hSvc<>0 then CloseServiceHandle(hSvc);
if hSCM<>0 then CloseServiceHandle(hSCM);
end;
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.