本文整理自网络,侵删。
功能包括 注册服务 开启服务 停止??? 不停..... 删除服务 4个功能
好的 重点在于CreateService的第5个参数设置
schd:=CreateService(mgrhd,
'TRsvc',
'TRsvc',
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS, //interact with the desktop
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
szstr,
nil,
nil,
nil,
nil,
nil);
你可以去看MSDN 或者 找到Winsvc.pas即可
本来想用SYSTEM权限来结束杀毒进程...但是却为实现之 原因很多 其中就包括自己很懒 能力有限 谁愿意完成么?
或者告诉我下这个并不可行 在此谢过看客~
------------------------------------------------------------------------code-----------------------------------------------------------------------------------
uses winSVC;
var
schd:SC_HANDLE;
mgrhd:SC_HANDLE;
scs:TServiceStatus;
procedure TForm1.takeitdown1Click(Sender: TObject);
begin
ShowMessage('测试~');
end;
procedure TForm1.CS1Click(Sender: TObject);
var szstr:pchar;
begin
mgrhd:=OpenSCManager('',nil,SC_MANAGER_ALL_ACCESS);
szstr:=pchar(application.exename);
schd:=CreateService(mgrhd,
'TRsvc',
'TRsvc',
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS, //interact with the desktop
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
szstr,
nil,
nil,
nil,
nil,
nil);
end;
procedure TForm1.SS1Click(Sender: TObject);
var
fxxkingchar:pchar; // just like this name
begin
fxxkingchar:=nil;
StartService(schd,0,fxxkingchar);
Application.ProcessMessages;
end;
procedure TForm1.SS2Click(Sender: TObject);
begin
ControlService(schd, SERVICE_CONTROL_STOP,scs);
end;
procedure TForm1.DS1Click(Sender: TObject);
begin
if schd = 0 then
begin
schd:=OpenService(mgrhd,'TRsvc',SC_MANAGER_ALL_ACCESS);
end;
ControlService(schd, SERVICE_CONTROL_STOP,scs);
DeleteService(schd);
CloseServiceHandle(schd);
CloseServiceHandle(mgrhd);
end;
相关阅读 >>
Delphi xe 使用asqlite操作sqlite数据库乱码
更多相关阅读请进入《Delphi》频道 >>