![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Установка и удаление Драйвера! Чет я запутался или что-то не то [D6, NT4, Win2k, WinXP]
NikNet © (2005-06-13 00:26:00)Вообщем что я не так сделал
Function InstallDrv(DriverName:string):String;
var
hSCM, hSRV : THandle;
begin
Result:='';
hSCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
IF hSCM = INVALID_HANDLE_VALUE Then
Result:='OpenSCManager '+#13#10;
// ñîçäàíèå ñèñòåìíîé çàïèñè î äðàéâåðå
hSRV := CreateService(
hSCM,
PChar(DriverName),
PChar(DriverName),
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
PChar(ExtractFilePath(ParamStr(0))+DriverName),
nil,
nil,
nil,
nil,
nil);
IF hSRV = INVALID_HANDLE_VALUE THEN
Result:=Result+'CreateService '+#13#10;
// î÷èñòêà ðåñóðñîâ
IF not CloseServiceHandle(hSRV) Then
Result:=Result+'SRV: CloseServiceHandle'+#13#10;
IF not CloseServiceHandle(hSCM) Then
Result:=Result+'SCM: CloseServiceHandle'+#13#10;
IF not StartService(hSrv,0,PChar(lpServiceArgVectors)) Then
Result:=Result+'StartService'+#13#10;
end;
Function RemoveDrv(DriverName:string):String;
var
hSCM, hSRV : THandle;
Status : TServiceStatus;
begin
Result:='';
hSCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
IF hSCM = INVALID_HANDLE_VALUE Then
Result:=Result+'OpenSCManager '+#13#10;
hSRV := OpenService(hSCM,PChar(DriverName), SERVICE_ALL_ACCESS);
IF hSRV = INVALID_HANDLE_VALUE THEN
Result:=Result+'OpenService'+#13#10;
IF not ControlService(hSRV,SERVICE_CONTROL_STOP,Status) then
Result:=Result+'ControlService'+#13#10;
IF not DeleteService(hSrv) Then
Result:=Result+'DeleteService'+#13#10;
IF not CloseServiceHandle(hSRV) Then
Result:=Result+'SRV: CloseServiceHandle'+#13#10;
IF not CloseServiceHandle(hSCM) Then
Result:=Result+'SCM: CloseServiceHandle'+#13#10;
end;
MS-MEN (2005-06-13 20:44:00) [1]IF ControlService(hSRV,SERVICE_CONTROL_STOP,Status) then
Result:=Result+'ControlService'+#13#10;
Ученик (2005-06-13 20:29:00) [2]>Anatoly Podgoretsky © (13.06.05 20:25) [6]
Да, пожалуйста :-)
http://www.britishmint.com/money_stalk_of_bills100.jpg
Anatoly Podgoretsky (2005-06-13 20:25:00) [3]Ученик (13.06.05 20:21) [5]
Два бакса.
Ученик (2005-06-13 20:21:00) [4]>NikNet © (13.06.05 20:17) [4]
Может текст ошибки все-таки сообщите :-)
NikNet (2005-06-13 20:17:00) [5]Я пробывал и так и сяк не чего :(
Ученик (2005-06-13 19:53:00) [6]>NikNet © (13.06.05 00:26)
В любом случае, после команды Stop, необходимо дожидаться остановки драйвера (сервиса)
VMcL (2005-06-13 10:18:00) [7]> Что-то ControlService выводит Ошибку... (False)
И что по этому поводу говорит RaiseLastOSError?
NikNet (2005-06-13 00:32:00) [8]Во-общим ошибки при удаление!
Что-то ControlService выводит Ошибку... (False)