解决方案 »
- 遍历目录的疑问
- 郁闷
- 如何将Turbo delphi 安装到 已经安装了.net 2.0环境下的系统上
- 高手!!!在Delphi中nil的具体含义是什么?它指代什么啊?
- 如何获得一个目录下最迟生成的那个文件的文件名?
- 请问一下,我创建的窗口是在打开时才create,关闭时在FORM的ONCLOSE事件中写FORM.RELEASE怎么会出现"stack overflow"这种错误?
- 求救:把EXCEL中的记录,一条条导入到已经存在表的SQL SERVER2000中,
- 如何调试VCL源代码?
- 这个SQL条件语句不知道怎么写(还是不懂)?
- 请问怎样在table中过滤字段值?
- 定义参数为空 但报错了
- delphi中如何用另加的ScrollBar取代DBGrid中的水平ScrollBar?
用delphi来如何写语句呢?
function ServiceStart(const ServiceName: string; const Computer: PChar = nil): Boolean;
{
启动服务
}
var
SCM, SCH: SC_Handle;
P: PChar;
begin
Result := False;
if IsLocalComputer(Computer) then
SCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS)
else
SCM := OpenSCManager(Computer, nil, SC_MANAGER_ALL_ACCESS);
if SCM <> 0 then
begin
SCH := OpenService(SCM, PChar(ServiceName), SERVICE_ALL_ACCESS);
if SCH <> 0 then
begin
Result := StartService(SCH, 0, P);
CloseServiceHandle(SCH);
end;
CloseServiceHandle(SCM);
end;
end;function ServiceStop(const ServiceName: string; const Computer: PChar = nil): Boolean;
{
停止服务
}
var
SCM, SCH: SC_Handle;
ServiceStatus: TServiceStatus;
begin
Result := False;
if IsLocalComputer(Computer) then
SCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS)
else
SCM := OpenSCManager(Computer, nil, SC_MANAGER_ALL_ACCESS);
if SCM <> 0 then
begin
SCH := OpenService(SCM, PChar(ServiceName), SERVICE_ALL_ACCESS);
if SCH <> 0 then
begin
Result := ControlService(SCH, SERVICE_CONTROL_STOP, ServiceStatus);
CloseServiceHandle(SCH);
end;
CloseServiceHandle(SCM);
end;
end;
试了,不能编译,变量类型SC_Handle无法识别。
要是能编译,太感谢你啦。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WinSvc, StdCtrls;type
TForm1 = class(TForm)
btnStart: TButton;
procedure btnStartClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function ServiceStart(const ServiceName: string; const Computer: PChar = nil): Boolean;
{
启动服务
}
var
SCM, SCH: SC_Handle;
P: PChar;
begin
Result := False;
SCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCM <> 0 then
begin
SCH := OpenService(SCM, PChar(ServiceName), SERVICE_ALL_ACCESS);
if SCH <> 0 then
begin
Result := StartService(SCH, 0, P);
CloseServiceHandle(SCH);
end;
CloseServiceHandle(SCM);
end;
end;function ServiceStop(const ServiceName: string; const Computer: PChar = nil): Boolean;
{
停止服务
}
var
SCM, SCH: SC_Handle;
ServiceStatus: TServiceStatus;
begin
Result := False;
SCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCM <> 0 then
begin
SCH := OpenService(SCM, PChar(ServiceName), SERVICE_ALL_ACCESS);
if SCH <> 0 then
begin
Result := ControlService(SCH, SERVICE_CONTROL_STOP, ServiceStatus);
CloseServiceHandle(SCH);
end;
CloseServiceHandle(SCM);
end;
end;procedure TForm1.btnStartClick(Sender: TObject);
begin
ServiceStart('HZ_CommSrv');
end;end.
可能是因为编译器的原因吧。
不知道如何才能在INNO 中应用。。