日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#徹底關(guān)閉Windows系統(tǒng)代碼,不用shutdown命令

admin
2025年5月14日 1:5 本文熱度 698

?以下是使用C#調(diào)用Windows API實(shí)現(xiàn)徹底關(guān)閉Windows系統(tǒng)的代碼方案(不依賴(lài) shutdown 命令):

方案一:直接調(diào)用 ExitWindowsEx  API(需管理員權(quán)限)

using System;

using System.Runtime.InteropServices;


public class SystemShutdown

{

    // 導(dǎo)入Windows API函數(shù)

    [DllImport("user32.dll", SetLastError = true)]

    private static extern bool ExitWindowsEx(uint uFlags, uint dwReason);


    // 常量定義

    private const uint EWX_SHUTDOWN = 0x00000001; // 常規(guī)關(guān)機(jī)

    private const uint EWX_POWEROFF = 0x00000008; // 關(guān)閉電源(若支持)

    private const uint EWX_FORCE = 0x00000004; // 強(qiáng)制終止進(jìn)程


    public static void Shutdown()

    {

        // 組合標(biāo)志:強(qiáng)制關(guān)機(jī)并關(guān)閉電源

        uint flags = EWX_SHUTDOWN | EWX_POWEROFF | EWX_FORCE;

        bool success = ExitWindowsEx(flags, 0);

        

        if (!success)

        {

            int errorCode = Marshal.GetLastWin32Error();

            throw new System.ComponentModel.Win32Exception(errorCode, "關(guān)機(jī)失敗");

        }

    }

} 

方案二:通過(guò)調(diào)整權(quán)限后調(diào)用API(更安全)

若上述方案因權(quán)限問(wèn)題失敗,需先獲取系統(tǒng)權(quán)限:

using System;

using System.Runtime.InteropServices;


public class AdvancedShutdown

{

    [StructLayout(LayoutKind.Sequential, Pack = 1)]

    private struct TokPriv1Luid

    {

        public int Count;

        public long Luid;

        public int Attr;

    }


    // 導(dǎo)入權(quán)限相關(guān)API

    [DllImport("advapi32.dll", SetLastError = true)]

    private static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);

    [DllImport("advapi32.dll", SetLastError = true)]

    private static extern bool LookupPrivilegeValueA(string host, string name, ref long pluid);

    [DllImport("advapi32.dll", SetLastError = true)]

    private static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);

    [DllImport("user32.dll", SetLastError = true)]

    private static extern bool ExitWindowsEx(int flg, int rea);


    // 權(quán)限常量

    private const int SE_PRIVILEGE_ENABLED = 0x00000002;

    private const int TOKEN_QUERY = 0x00000008;

    private const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;

    private const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege";


    public static void ForceShutdown()

    {

        IntPtr hToken = IntPtr.Zero;

        TokPriv1Luid tp = new TokPriv1Luid { Count = 1, Attr = SE_PRIVILEGE_ENABLED };


        // 獲取當(dāng)前進(jìn)程令牌并調(diào)整權(quán)限

        OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref hToken);

        LookupPrivilegeValueA(null, SE_SHUTDOWN_NAME, ref tp.Luid);

        AdjustTokenPrivileges(hToken, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);


        // 執(zhí)行強(qiáng)制關(guān)機(jī)(組合多個(gè)標(biāo)志)

        ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_POWEROFF, 0);

    }


    [DllImport("kernel32.dll")]

    private static extern IntPtr GetCurrentProcess();

}

關(guān)鍵說(shuō)明

權(quán)限要求

必須以管理員身份運(yùn)行程序,可通過(guò)以下任一方式實(shí)現(xiàn):

在項(xiàng)目中添加 app.manifest 文件,設(shè)置:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

運(yùn)行時(shí)檢查權(quán)限并提示用戶(hù)(示例代碼見(jiàn)1)。

參數(shù)選擇

 EWX_FORCE :強(qiáng)制終止未響應(yīng)程序,但可能導(dǎo)致數(shù)據(jù)丟失。

 EWX_POWEROFF :物理關(guān)閉電源(需硬件支持)8。

若需重啟,可改用 EWX_REBOOT 標(biāo)志822。

錯(cuò)誤處理

通過(guò) Marshal.GetLastWin32Error() 獲取錯(cuò)誤代碼1。

常見(jiàn)錯(cuò)誤: ERROR_SHUTDOWN_IN_PROGRESS (5)表示已有關(guān)機(jī)任務(wù)。

測(cè)試調(diào)用

class Program

{

    static void Main()

    {

        try

        {

            AdvancedShutdown.ForceShutdown();

            Console.WriteLine("關(guān)機(jī)指令已發(fā)送");

        }

        catch (Exception ex)

        {

            Console.WriteLine($"錯(cuò)誤:{ex.Message}");

        }

    }

}、?

注意事項(xiàng)

數(shù)據(jù)安全:強(qiáng)制關(guān)機(jī)可能導(dǎo)致未保存數(shù)據(jù)丟失,建議關(guān)鍵應(yīng)用先觸發(fā)保存邏輯。

系統(tǒng)兼容性:代碼適用于Windows系統(tǒng),不同版本需測(cè)試API行為差異。

替代方案:若需延遲關(guān)機(jī),仍建議使用 shutdown.exe 命令(但用戶(hù)要求禁用)。


該文章在 2025/5/14 8:54:39 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

二三区黄片| 成人性在线| 久久免费2017| 大操逼网站| 欧美婷婷五月天成人俱乐部| 美女zozo高潮| 久久综合AV免费观看| 亚洲欧美久久久久一区| 亚洲天堂无码第三页| 欧美日韩九区| caoporn殴美| 亚洲av无码一区二区三区四区| 熟女丝袜国产| 91粉嫩网站| 大鸡巴好涨视频| 欧美成人一久| 亚洲精品一区二区专区| 欧美激情国产日韩精品一区 | 美韩 日欧 亚非一区| 综合首页一区二区| 亚洲精品男同一区二区三区| 日本成人国产一区无码人妻| 日韩 免费1区| 蜜桃92午夜福利视频| 国内精品夫妻 在线| 亚洲精品A网址| 日韩影视第一区中文字幕AV| 日本AAAA久久久久| l最新黄色AV网站| 日韩精品在线一区不卡| 欧美黄视频久久久| 国产赤裸美女免费网站| 精品久久国产91久久| 91色地址发布页| AV熟女中文字幕| 操的舒服 视频| 亚洲国产欧美熟女黄色网址| 国产欧美网站在线| porn08.com| 男人的天堂av日日骚| 日本骚少妇动|