Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Внизслужбы (сервисы) Найти похожие ветки
← →
Scot Storch (2009-02-10 12:16) [0]Разбираюсь с написанием служб (сервисов). Смотрю пример установки службы. Вот код: Не понимаю зачем вызывать и нужно ли вообще, функцию ChangeServiceConfig, пожалуйста разъясните уважаемые Мастера.
function Install: Boolean;
var
s_Manager, S: SC_HANDLE;
begin
s_Manager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
if s_Manager <> 0 then
try
S := CreateService(s_Manager, s_Name_A, s_DisplayName_A, SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL, PChar(""" + ParamStr(0) + "" -Service"), nil, nil, nil, nil, nil);
if S <> 0 then
try
Result := ChangeServiceConfig(S, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE,
SERVICE_NO_CHANGE, nil, nil, nil, nil, nil, nil, nil);
finally
CloseServiceHandle(S);
end
else
Result := GetLastError = ERROR_SERVICE_EXISTS;
finally
CloseServiceHandle(s_Manager);
end
else
Result := False;
end;
← →
clickmaker © (2009-02-10 12:39) [1]а откуда эта функция?
явная глупость - оборачивать ChangeServiceConfig в try - finally: эта функция не выбрасывает исключений
в VCL есть подобная TServiceApplication.RegisterServices
← →
han_malign © (2009-02-10 15:29) [2]это параноя, в стиле: if(Result <> true)then Result:= false;
Хотя, не исключено, что это kludge для какой то глючной ревизии/инсталяции/кряка Windows( в довесок, с каким нибудь кривым руткитом, вроде Symantec - перехватывающим всё и вся )...
← →
Anatoly Podgoretsky © (2009-02-10 15:35) [3]
> Result := ChangeServiceConfig
Результат у данной функции не Boolean
← →
DVM © (2009-02-10 16:13) [4]
> явная глупость - оборачивать ChangeServiceConfig в try -
> finally: эта функция не выбрасывает исключений
Имхо, лучше написать там где не надо, чем не написать там где надо. Хорошая привычка страховать себя. Мало ли, сейчас между try...finally одна строка, потом пять.
← →
StriderMan (2009-02-10 16:51) [5]
> Имхо, лучше написать там где не надо, чем не написать там где надо
лучше писать только там где надо.
Потом следующий такой перестраховщик внутрь еще один try...except засунет. А следующий в принципе не разберется и обернет все это в еще один. На выходе получится малопонятный бутерброд.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c