如何調整系統裏的服務項? |
答題得分者是:hagar
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
Services - List Installed Services: http://www.delphisource.com/tipsdtl.asp?id=35
Starting and stopping Windows services: http://www.delphifaq.com/fq/q2121.shtml check if a service is running: http://www.swissdelphicenter.ch/en/showcode.php?id=1275 ---
歡迎光臨 KTop 研究院 發表人 -
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
引言: Services - List Installed Services: http://www.delphisource.com/tipsdtl.asp?id=35 --- 歡迎光臨 KTop 研究院 發表人 - >>< face="Verdana, Arial, Helvetica"> function ServiceStart(sMachine, sService: String) : Boolean; var schm, schs: SC_Handle; ss: TServiceStatus; psTemp: PChar; dwChkP: DWord; begin ss.dwCurrentState := -1;//編譯的時候提示這裏有錯誤,大大能不能看看?謝謝 schm := OpenSCManager(PChar(sMachine), nil, SC_MANAGER_CONNECT); if (schm>0) then begin schs := OpenService(schm, PChar(sService), SERVICE_START or SERVICE_QUERY_STATUS); if (schs>0) then begin psTemp := nil; if (StartService(schs, 0, psTemp)) then if (QueryServiceStatus(schs, ss)) then while (SERVICE_RUNNING<>ss.dwCurrentState) do begin dwChkP := ss.dwCheckPoint; Sleep(ss.dwWaitHint); if (not QueryServiceStatus(schs, ss)) then Break; if (ss.dwCheckPoint < dwChkP) then Break; end; CloseServiceHandle(schs); end; CloseServiceHandle(schm); end; Result := SERVICE_RUNNING=ss.dwCurrentState; end;----------要知道自己有多笨,到DelphiK.Top來看看---------- |
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
關於 -1 這個問題, 以下是 MSDN 中關於 dwCurrentState 的說明:
Current state of the service. This member can be one
of the following values.
Value Meaning
SERVICE_CONTINUE_PENDING The service continue is pending.
SERVICE_PAUSE_PENDING The service pause is pending.
SERVICE_PAUSED The service is paused.
SERVICE_RUNNING The service is running.
SERVICE_START_PENDING The service is starting.
SERVICE_STOP_PENDING The service is stopping.
SERVICE_STOPPED The service is not running.
而在 Winsvc unit 中:
//
// Service State -- for CurrentState
//
{$EXTERNALSYM SERVICE_STOPPED}
SERVICE_STOPPED = $00000001;
{$EXTERNALSYM SERVICE_START_PENDING}
SERVICE_START_PENDING = $00000002;
{$EXTERNALSYM SERVICE_STOP_PENDING}
SERVICE_STOP_PENDING = $00000003;
{$EXTERNALSYM SERVICE_RUNNING}
SERVICE_RUNNING = $00000004;
{$EXTERNALSYM SERVICE_CONTINUE_PENDING}
SERVICE_CONTINUE_PENDING = $00000005;
{$EXTERNALSYM SERVICE_PAUSE_PENDING}
SERVICE_PAUSE_PENDING = $00000006;
{$EXTERNALSYM SERVICE_PAUSED}
SERVICE_PAUSED = $00000007;
所以 dwCurrentState 值不能為 -1 吧. ---
歡迎光臨 KTop 研究院
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |