這裏是我用Visual C++ 6.0程序的代碼:Visual C++和窗口服務
#include <Windows.h>
#include "stdafx.h"
#include <stdlib.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
while(true)
{
int sleepInterval = rand()%15;
Sleep(sleepInterval*1000);
WinExec("notepad.exe" ,SW_SHOWNORMAL);
}
return 0;
}
接我一招,從這個代碼生成的* .exe文件,並將其移動到我的桌面。我從那裏開始。一切正常,我的意思是記事本編輯器窗口不時出現。 然後我用命令提示符下面的命令創建了Windows服務: C:\ Documents and Settings \ Administrator> sc create ThemesService2 binPath =「C:\ Documents and Settings \ Administrator \ Desktop \ win32apphelloworld.exe」DisplayName =「Themes Service2 「start = auto
命令提示符的結果是這樣的:[SC] CreateService SUCCESS 到目前爲止一切正常 - 服務已創建並且必須在Windows啓動時自動啓動。我重新啓動。然後沒有任何反應,記事本中的窗口不會出現。我從開始菜單 - >運行打開Services.msc。該服務在那裏,但它的狀態是空的,我的意思是它的stsatus不是'開始'。它的'啓動類型'是'自動的',因爲它應該是。 但它沒有啓動。我試着用鼠標右鍵手動啓動它,然後點擊「開始」,出現一個錯誤框,說:'錯誤1053:服務沒有及時響應啓動或控制請求'。有人能告訴我這項服務沒有啓動的原因是什麼? 謝謝
服務運行在不同的會話中,所以你不會看到任何記事本窗口。 –
嗯,我不知道這個。但是,當我檢查Services.msc中的服務時,即使我沒有看到記事本窗口,服務狀態仍然不能啓動。目前它不是'開始',我把自己理解爲「不跑步」? – citroen
您的'WinMain'永遠不會返回,這與您收到的錯誤消息一致。這就是說,我不知道你是否可以從一個經常性的易用性創建一個服務。需要服務來實現某些回調。 – IInspectable