2012-04-23 171 views
0

我有一個本地系統服務應用程序,用C++/MFC編寫,旨在運行在Windows操作系統上。當系統啓動時,我需要運行此服務中的代碼。我最初的想法是從ServiceMain()函數開始運行它,它是通過調用StartServiceCtrlDispatcher()API來定義的,但問題在於,如果我停止並重新啓動此服務,它也會運行。如何在Windows服務應用程序中啓動系統時運行代碼?

+0

像你想要比的服務的司機聽起來更多... – ildjarn 2012-04-23 22:32:56

+0

不,我需要知道是系統啓動的時間。 – ahmd0 2012-04-23 22:49:16

+1

如果是這樣的話,'net statistics server'有什麼問題? – ildjarn 2012-04-23 22:50:50

回答

1

聽起來像你不需要服務。您可以對計劃任務執行相同操作。您可以使用taskschd.msc創建具有觸發任務啓動在系統啓動時任務,或者在命令行:

schtasks.exe /Create /SC ONSTART /TN MyTaskName /TR c:\Path_to_my_tool\my_executable.exe 
+0

謝謝。你看,我沒有爲此目的創建一項服務。我已經有了一個需要知道系統啓動時間的服務。計劃任務管理器本身就是一項服務,所以它必須以某種方式知道,對嗎? – ahmd0 2012-04-24 04:03:23

+0

如果你已經有一個exe是一項服務,可以使用一個特殊的參數作爲一個計劃任務來調用它。例如:'myservice.exe/OnStartup'。在現有的服務解析命令行中,只有在存在命令行選項的情況下才執行您想在啓動時運行的代碼。 – 2012-04-24 13:54:58

相關問題