2009-04-09 71 views
1

我正在編寫一個應用程序,需要重新啓動運行代碼的Windows機器。InitiateSystemShutdown調用不工作

在.NET中似乎沒有API來做到這一點,所以我查找了Win32 API並將其稱爲InitiateSystemShutdown。

[DllImport("advapi32.dll")] 
public static extern bool InitiateSystemShutdown(string Machinename, string 
Message, long Timeout, int ForceAppsClosed, int RebootAfterShutdown); 

然後我嘗試調用這個操作系統程序具有下列參數:下面的extern聲明中給出

InitiateSystemShutdown(null, null, 30, 1, 1); 

然而,這始終返回false。因此,我調用Marshal.GetLastWin32Error方法,並返回錯誤代碼1008.此錯誤代碼的消息是:

「試圖引用不存在的標記。

代碼在Windows服務中運行,並在管理員帳戶下運行。我試過將它作爲本地系統運行,並沒有效果。

回答