除了用net stop 'ddd' 有没有API可以停止一个服务啊。
解决方案 »
- indy10传输2个结构体
- 没事~~~
- 如何在程序运行期指定FastReport里Memo的字体、字号和颜色???
- 求《Windows程序设计》附书光盘上的ADDSYNTH.H
- ////////////DBGrid 中,可不可以把DBGrid 的两列分别对应数据源。也就是一列对应一个数据源...//////
- 怎么样把Form上的Edit的值直接传给Fastreport呀!
- 急!!!swf加入资源文件后,怎样做到不释放到具体的目录,而直接调用(达到保护swf文件的目的)?
- Raptor(猛禽)来此领100分先
- 谁有rbuilder for d6,最好不是测试版的,要正式版的,做报表用它很方便,那里可以下载,无限感激。
- 问:zswang(伴水)?
- 救命呀! 三层结构,用socket连接的客户端使用多线程调用服务端的FTP上传文件函数出错!!! 急!!!
- 如何从零学好DELPHI?特别是组件部分(在线等100分)
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Winsvc;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
schService:SC_HANDLE;
schSCManager:SC_HANDLE;
ssStatus:TServiceStatus;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
schSCManager:=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);
schService:=OpenService(schSCManager,'alerter',SERVICE_ALL_ACCESS);
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseServiceHandle(schService);
CloseServiceHandle(schSCManager);
end;procedure TForm1.Button1Click(Sender: TObject);
var
Argv:PChar;
begin
if StartService(schService,0,Argv) then
begin
form1.caption:='Start Service Now ';
Sleep(1000);
while (QueryServiceStatus(schService,ssStatus)) do
begin
Application.ProcessMessages;
if ssStatus.dwCurrentState=SERVICE_START_PENDING then
begin
form1.caption:=form1.caption+('.');
Sleep(1000);
end else break;
end;
if ssStatus.dwCurrentState=SERVICE_RUNNING then
form1.caption:='Service Start Ok'
else form1.caption:='Service Start Fail';
end
else form1.caption:='Service Start Fail';
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if ControlService(schService,SERVICE_CONTROL_STOP,ssStatus) then
begin
form1.caption:='Stopping Service Now ';
Sleep(1000);
while (QueryServiceStatus(schService,ssStatus)) do
begin
Application.ProcessMessages;
if ssStatus.dwCurrentState=SERVICE_STOP_PENDING then
begin
form1.caption:=form1.caption+('.');
Sleep(1000);
end else break;
end;
if ssStatus.dwCurrentState=SERVICE_STOPPED then
form1.caption:='Service Stop Ok'
else form1.caption:='Service Stop Fail';
end
else form1.caption:='Service Stop Fail';
end;
end.把上面的alerter改成你要启动或停止的服务就行了_____________________
comment by Liu Yang
http://lysoft.7u7.net
QQ Group: 7858482