亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 服務(wù)狀態(tài)的判斷、啟動與停止 (2001年3月26日).txt

?? 自己對DELPHI學(xué)習(xí)的一點體會
?? TXT
字號:
服務(wù)狀態(tài)的判斷、啟動與停止 (2001年3月26日) 

網(wǎng)友更新  分類:Win API   作者: yanlei(推薦)  推薦:yanlei   閱讀次數(shù):321  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
uses
WinSvc, WinTypes;
function ServiceGetKeyName(
sMachine,
sServiceDispName : string ) : string;
var
//
// service control
// manager handle
schm : SC_Handle;

//
// max key name len
nMaxNameLen : dWORD;
//
// temp. string
psServiceName : PChar;
begin
Result := '';

// expect a service key
// name shorter than 255
// characters
nMaxNameLen := 255;

// connect to the service
// control manager
schm := OpenSCManager(
PChar(sMachine),
Nil,
SC_MANAGER_CONNECT);

// if successful...
if(schm > 0)then
begin
psServiceName :=
StrAlloc(nMaxNameLen+1);

if(nil <> psServiceName)then
begin
if( GetServiceKeyName(
schm,
PChar(sServiceDispName),
psServiceName,
nMaxNameLen))then
begin
psServiceName
[nMaxNameLen] := #0;

Result :=
StrPas( psServiceName );
end;

StrDispose(psServiceName);
end;

// close service control
// manager handle
CloseServiceHandle(schm);
end;
end;

function ServiceStart(
sMachine,
sService : string ) : boolean;
var
//
// service control
// manager handle
schm,
//
// service handle
schs : SC_Handle;
//
// service status
ss : TServiceStatus;
//
// temp char pointer
psTemp : PChar;
//
// check point
dwChkP : DWord;
begin
//ss.dwCurrentState := -1;

// connect to the service
// control manager
schm := OpenSCManager(PChar(sMachine), Nil, SC_MANAGER_CONNECT);

// if successful...
if(schm > 0)then
begin
// open a handle to
// the specified service
schs := OpenService(schm,PChar(sService),SERVICE_START or SERVICE_QUERY_STATUS);
// we want to
// start the service and
// query service status


// if successful...
if(schs > 0)then
begin
psTemp := Nil;
if(StartService(schs, 0, psTemp)) then
begin
// check status
if(QueryServiceStatus(schs,ss)) then
begin
while(SERVICE_RUNNING<> ss.dwCurrentState)do
begin
//
// dwCheckPoint contains a
// value that the service
// increments periodically
// to report its progress
// during a lengthy
// operation.
//
// save current value
//
dwChkP := ss.dwCheckPoint;

//
// wait a bit before
// checking status again
//
// dwWaitHint is the
// estimated amount of time
// the calling program
// should wait before calling
// QueryServiceStatus() again
//
// idle events should be
// handled here...
//
Sleep(ss.dwWaitHint);
application.ProcessMessages;

if(not QueryServiceStatus(
schs,
ss))then
begin
// couldn't check status
// break from the loop
break;
end;

if(ss.dwCheckPoint <
dwChkP)then
begin
// QueryServiceStatus
// didn't increment
// dwCheckPoint as it
// should have.
// avoid an infinite
// loop by breaking
break;
end;
end;
end;
end;

// close service handle
CloseServiceHandle(schs);
end;

// close service control
// manager handle
CloseServiceHandle(schm);
end;

// return TRUE if
// the service status is running
Result :=SERVICE_RUNNING = ss.dwCurrentState;
end;
function ServiceStop(
sMachine,
sService : string ) : boolean;
var
//
// service control
// manager handle
schm,
//
// service handle
schs : SC_Handle;
//
// service status
ss : TServiceStatus;
//
// check point
dwChkP : DWord;
begin
// connect to the service
// control manager
schm := OpenSCManager(
PChar(sMachine),
Nil,
SC_MANAGER_CONNECT);

// if successful...
if(schm > 0)then
begin
// open a handle to
// the specified service
schs := OpenService(
schm,
PChar(sService),
// we want to
// stop the service and
SERVICE_STOP or
// query service status
SERVICE_QUERY_STATUS);

// if successful...
if(schs > 0)then
begin
if(ControlService(
schs,
SERVICE_CONTROL_STOP,
ss))then
begin
// check status
if(QueryServiceStatus(
schs,
ss))then
begin
while(SERVICE_STOPPED
<> ss.dwCurrentState)do
begin
//
// dwCheckPoint contains a
// value that the service
// increments periodically
// to report its progress
// during a lengthy
// operation.
//
// save current value
//
dwChkP := ss.dwCheckPoint;

//
// wait a bit before
// checking status again
//
// dwWaitHint is the
// estimated amount of time
// the calling program
// should wait before calling
// QueryServiceStatus() again
//
// idle events should be
// handled here...
//
Sleep(ss.dwWaitHint);
application.ProcessMessages;

if(not QueryServiceStatus(
schs,
ss))then
begin
// couldn't check status
// break from the loop
break;
end;

if(ss.dwCheckPoint <
dwChkP)then
begin
// QueryServiceStatus
// didn't increment
// dwCheckPoint as it
// should have.
// avoid an infinite
// loop by breaking
break;
end;
end;
end;
end;

// close service handle
CloseServiceHandle(schs);
end;

// close service control
// manager handle
CloseServiceHandle(schm);
end;

// return TRUE if
// the service status is stopped
Result :=
SERVICE_STOPPED =
ss.dwCurrentState;
end;



procedure TForm1.Button1Click(Sender: TObject);//啟動服務(wù)
begin
if ServiceStart('',ServiceGetKeyName( '',edit1.Text) ) then
showmessage('成功')
else
showmessage('不成功');


end;

procedure TForm1.Button2Click(Sender: TObject);//停止服務(wù)
begin
if ServiceStop( '', ServiceGetKeyName('',edit1.Text) ) then
showmessage('成功')
else
showmessage('不成功');


end;
function ServiceGetStrCode(
nID : integer ) : string;
var
s : string;
begin
case nID of
SERVICE_STOPPED:
s := 'STOPPED';
SERVICE_RUNNING:
s := 'RUNNING';
SERVICE_PAUSED:
s := 'PAUSED';
SERVICE_START_PENDING:
s := 'START/PENDING';
SERVICE_STOP_PENDING:
s := 'STOP/PENDING';
SERVICE_CONTINUE_PENDING:
s := 'CONTINUE/PENDING';
SERVICE_PAUSE_PENDING:
s := 'PAUSE/PENDING';
else
s := 'UNKNOWN';
end;

Result := s;
end;

function ServiceGetStatus(
sMachine,
sService : string ) : DWord;
var
//
// service control
// manager handle
schm,
//
// service handle
schs : SC_Handle;
//
// service status
ss : TServiceStatus;
//
// current service status
dwState : integer;
begin
dwState:= -1;

// connect to the service
// control manager
schm := OpenSCManager(
PChar(sMachine),
Nil,
SC_MANAGER_CONNECT);

// if successful...
if(schm > 0)then
begin
// open a handle to
// the specified service
schs := OpenService(
schm,
PChar(sService),
// we want to
// query service status
SERVICE_QUERY_STATUS);

// if successful...
if(schs > 0)then
begin
// retrieve the current status
// of the specified service
if(QueryServiceStatus(
schs,
ss))then
begin
dwState := ss.dwCurrentState;
end;

// close service handle
CloseServiceHandle(schs);
end;

// close service control
// manager handle
CloseServiceHandle(schm);
end;

Result := dwState;
end;



procedure TForm1.Button3Click(Sender: TObject);//檢查服務(wù)狀態(tài)
var
n : integer;
sKeyName,
s : string;
begin
sKeyName :=
ServiceGetKeyName(
'',
edit1.Text);//'Fax Service'



n := ServiceGetStatus(
'',
sKeyName );

s := ServiceGetStrCode( n );


if(SERVICE_STOPPED = n)then
begin
showmessage('停止');
end;
if(SERVICE_RUNNING = n)then
begin
showmessage('運(yùn)行');
end;
end;
end.
注:在delphi深度探險中源碼下載后改造  
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片在线观看一区| 久久你懂得1024| 国产电影一区在线| 一区二区三区四区不卡在线| 久久婷婷色综合| 欧美肥胖老妇做爰| 91在线观看高清| 国产成人夜色高潮福利影视| 日韩av电影一区| 一区二区高清在线| 国产精品久久久久影视| 久久色中文字幕| 欧美一级免费大片| 欧美视频一区二区在线观看| 成人精品国产一区二区4080| 激情欧美一区二区| 日产国产高清一区二区三区 | 欧美一级午夜免费电影| 91免费国产在线观看| 成人av在线播放网站| 精品一区二区免费在线观看| 午夜电影一区二区| 夜夜嗨av一区二区三区中文字幕 | 久久嫩草精品久久久精品一| 欧美精品日韩一本| 欧美性猛交xxxxxx富婆| 97se亚洲国产综合自在线观| 成人av免费网站| 国产乱码精品一区二区三区忘忧草| 日韩精品欧美精品| 日日夜夜免费精品视频| 视频一区二区中文字幕| 午夜精品久久久久影视| 亚洲一区二区精品视频| 亚洲成在线观看| 亚洲狠狠爱一区二区三区| 亚洲精品成a人| 一区二区三区免费| 亚洲国产精品久久艾草纯爱| 亚洲国产精品天堂| 首页欧美精品中文字幕| 亚洲成人动漫精品| 日韩vs国产vs欧美| 久草热8精品视频在线观看| 精品在线免费观看| 国产精品主播直播| av电影在线观看不卡| 91视频免费播放| 在线观看国产日韩| 欧美日韩高清影院| 日韩一区二区免费高清| 日韩视频123| 久久综合久久综合亚洲| 国产精品色噜噜| 亚洲精品免费在线| 舔着乳尖日韩一区| 精品一二线国产| 成人爽a毛片一区二区免费| av亚洲产国偷v产偷v自拍| 欧美亚洲国产怡红院影院| 欧美一区二区视频在线观看2020| 日韩三级.com| 欧美国产丝袜视频| 亚洲伊人色欲综合网| 美女视频网站黄色亚洲| 懂色av一区二区夜夜嗨| 色婷婷av一区二区| 日韩欧美视频一区| 中文字幕在线观看一区二区| 亚洲一区二区三区爽爽爽爽爽 | 亚洲成人手机在线| 精品一区二区三区免费观看 | 国产不卡一区视频| 欧洲另类一二三四区| 欧美一区二区日韩一区二区| 欧美国产国产综合| 亚洲成人激情综合网| 激情成人综合网| 91久久国产最好的精华液| 7777精品久久久大香线蕉| 久久久久国产一区二区三区四区| 亚洲日本在线观看| 久久国产精品99久久人人澡| 99九九99九九九视频精品| 91精品久久久久久蜜臀| 中文字幕一区免费在线观看| 日精品一区二区三区| 国产91精品精华液一区二区三区| 在线精品观看国产| 日本一区二区综合亚洲| 日韩av一区二区在线影视| 99免费精品在线观看| 91精品国产入口| 最新中文字幕一区二区三区| 精品在线播放午夜| 欧美日韩极品在线观看一区| 国产精品无码永久免费888| 男女男精品视频| 欧美性大战xxxxx久久久| 日本一区二区动态图| 美女一区二区三区| 欧美日产在线观看| 亚洲精品成人精品456| 国产成人精品影院| 日韩欧美电影一二三| 亚洲一区二区三区国产| 99久久99久久综合| 久久久精品tv| 老司机精品视频线观看86| 欧美视频精品在线观看| 国产精品色婷婷| 国产精品一卡二卡| 精品1区2区在线观看| 三级欧美在线一区| 欧美视频在线播放| 亚洲一区视频在线| 91免费小视频| 综合色天天鬼久久鬼色| 国产91富婆露脸刺激对白| 日韩欧美在线123| 日韩中文字幕区一区有砖一区| 色婷婷综合在线| 亚洲色图色小说| 99麻豆久久久国产精品免费| 欧美国产禁国产网站cc| 国产成人av电影免费在线观看| 欧美www视频| 久久精品国产在热久久| 91精品国产91久久综合桃花| 视频一区中文字幕国产| 欧美高清性hdvideosex| 视频一区在线播放| 制服.丝袜.亚洲.另类.中文| 日日摸夜夜添夜夜添精品视频 | 免费观看日韩av| 欧美一区二区免费| 蜜桃视频在线观看一区二区| 欧美一区二区免费视频| 精品一区二区三区日韩| 久久先锋影音av| 高清成人在线观看| 亚洲欧洲av在线| 色综合久久综合中文综合网| 一区二区免费看| 精品视频资源站| 美女网站一区二区| 国产视频一区二区在线| 福利91精品一区二区三区| 国产精品国产三级国产普通话蜜臀| 99视频一区二区| 亚洲成av人影院| 精品国产一区二区三区四区四 | 风间由美一区二区av101| 中文字幕的久久| 91啪亚洲精品| 日韩在线播放一区二区| 精品人伦一区二区色婷婷| 国产成人一区二区精品非洲| 亚洲欧洲中文日韩久久av乱码| 在线亚洲人成电影网站色www| 五月婷婷激情综合| 精品粉嫩超白一线天av| 99久久婷婷国产| 午夜精品视频一区| 久久久五月婷婷| 在线免费观看日本一区| 麻豆国产精品官网| 中文字幕中文字幕一区| 欧美日韩精品二区第二页| 国产毛片精品视频| 亚洲男同1069视频| 欧美一区二区视频观看视频| 成人国产电影网| 日韩国产在线观看| 国产精品美女久久久久久久| 欧美精品久久99久久在免费线 | 亚欧色一区w666天堂| 欧美mv日韩mv| 色婷婷亚洲婷婷| 久久99日本精品| 亚洲欧美日本韩国| 欧美v日韩v国产v| 欧美在线视频不卡| 国产69精品久久777的优势| 亚洲大片免费看| 中文字幕在线观看一区| 欧美videofree性高清杂交| 色婷婷综合在线| 国产精品69久久久久水密桃| 亚洲国产美女搞黄色| 日本一区二区三区在线观看| 91精品国产色综合久久ai换脸| 成人h版在线观看| 久久精品国产免费看久久精品| 亚洲精品日韩综合观看成人91| 久久综合九色综合欧美就去吻 | 国产精品短视频| 精品福利一区二区三区免费视频| 99精品视频一区二区三区| 国产一区二区三区在线观看精品|