方法一:呼叫windows自帶的shutdown.exe (缺點:會出現倒計時視窗)
system.diagnostics.process.start("shutdown.exe", "-r -f -t 15");
shutdown引數含義:-r關閉並重啟動此計算機;-f 強制執行的應用程式關閉而沒有警告;-t 15 延時15秒
shutdown.exe的詳細用法:
shutdown [-i | -l | -s | -r | -a] [-f] [-m //computername] [-t xx] [-c "comment"] [-d up:xx:yy]
沒有引數 顯示此訊息(與 ? 相同)
-i 顯示 gui 介面,必須是第乙個選項
-l 登出(不能與選項 -m 一起使用)
-s 關閉此計算機
-r 關閉並重啟動此計算機
-a 放棄系統關機
-m //computername 遠端計算機關機/重啟動/放棄
-t xx 設定關閉的超時為 xx 秒
-c "comment" 關閉注釋(最大 127 個字元)
-f 強制執行的應用程式關閉而沒有警告
-d [u][p]:xx:yy 關閉原因**
u 是使用者**
p 是乙個計畫的關閉**
xx 是乙個主要原因**(小於 256 的正整數)
yy 是乙個次要原因**(小於 65536 的正整數)
方法二:呼叫api
1private
const
int se_privilege_enabled = 0x00000002;2
private
const
int token_query = 0x00000008;3
private
const
int token_adjust_privileges = 0x00000020;4
private
const
string se_shutdown_name = "
seshutdownprivilege";
56[flags]
7public
enum exitwindows : uint816
17[flags]
18private
enum shutdownreason : uint
1957
58 [structlayout(layoutkind.sequential, pack = 1
)]59
private
struct
tokpriv1luid
6065
66 [dllimport("
kernel32.dll
", exactspelling = true
)]67
private
static
extern
intptr getcurrentprocess();
6869 [dllimport("
advapi32.dll
", exactspelling = true, setlasterror = true
)]70
private
static
extern
bool openprocesstoken(intptr h, int acc, ref
intptr phtok);
7172 [dllimport("
advapi32.dll
", setlasterror = true
)]73
private
static
extern
bool lookupprivilegevalue(string host, string name, ref
long
pluid);
7475 [dllimport("
advapi32.dll
", exactspelling = true, setlasterror = true
)]76
private
static
extern
bool adjusttokenprivileges(intptr htok, bool disall, ref tokpriv1luid newst, int
len, intptr prev, intptr relen);
7778 [dllimport("
user32.dll")]
79private
static
extern
bool
exitwindow***(exitwindows uflags, shutdownreason dwreason);
8081
///82
///關機、重啟、登出windows
83///
84///
85public
static
void
doexitwindows(exitwindows flag)
86
用手機對電腦進行遠端關機
ps 本人一月份寫的文章,貼在這裡。昨天真是奔波的一天,中午烤肉逛街下午壽司看電影 陪老婆 今天中午又是麻辣 額,不爭氣的腸胃果然導致我拉肚子了。不過,話說昨天下午在石景山萬達吃完壽司後,看了 金陵十三釵 倒是頗有感觸,這部電影 又名 保衛戰 旗幟鮮明的打出了這樣口號 讓 先走。老謀子的電影越來越不...
使用vscode對c進行除錯
最近在學習c語言。知道vscode支援對c語言的 的除錯,就想試試。然後找了教程 照著做都沒成功。打了斷點卻無法命中。然後想到很有可能是因為gcc編譯 的問題,導致無法命中斷點,gdb除錯程式或許有什麼獨特的命令。於是上網搜尋關於gdb的資料。很容易就找到這篇 解決我問題的文章的前半部分,我意識到,...
C 實現 Windows 關機 重啟 登出
using system using system.collections.generic using system.text using system.runtime.interopservices dllimport kernel32.dll exactspelling true interna...