2009-04-09 14 views
1

コードを実行しているWindowsマシンを再起動する必要があるアプリケーションを作成しています。InitiateSystemShutdown呼び出しが機能しない

これは.NET内にAPIがないため、Win32 APIを参照してInitiateSystemShutdownと呼ばれていました。 extern宣言は以下のとおりである:

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

私は、次の引数で、このオペレーティングシステムのルーチンを呼び出すようにしてみてください。

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

しかし、これは常にfalseを返します。私はMarshal.GetLastWin32Errorメソッドを呼び出すと、1008のエラーコードを返します。

"存在しないトークンを参照しようとしました。"

コードはWindowsサービス内で実行されており、Administratorアカウントで実行されています。私はそれをローカルシステムとして実行しようとしましたが、それは効果がありませんでした。

答えて

関連する問題