LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#實現Windows7/8/10/11系統強制重啟代碼

admin
2025年5月12日 20:46 本文熱度 60

以下是使用C#實現強制重啟Windows 11操作系統的代碼示例,提供兩種常見方法:

方法1:調用系統命令(推薦)

using System;

using System.Diagnostics;


public class SystemRebooter{

    public static void ForceReboot()

    {

        try

        {

            // 使用shutdown命令強制重啟

            var psi = new ProcessStartInfo

            {

                FileName = "shutdown.exe",

                Arguments = "/r /f /t 0", // 立即強制重啟

                UseShellExecute = false,

                CreateNoWindow = true

            };

            Process.Start(psi);

        }

        catch (System.ComponentModel.Win32Exception ex)

        {

            // 處理權限不足的情況

            Console.WriteLine($"需要管理員權限: {ex.Message}");

        }

    }

}


// 使用示例

SystemRebooter.ForceReboot();

方法2:使用Windows API(更底層)

using System;

using System.Runtime.InteropServices;


public class SystemRebooter{

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

    private static extern int NtRaiseHardError(

        int ErrorStatus,

        int NumberOfParameters,

        int UnicodeStringParameterMask,

        IntPtr Parameters,

        int ValidResponseOption,

        out int Response);


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

    private static extern bool InitiateSystemShutdownEx(

        string lpMachineName,

        string lpMessage,

        uint dwTimeout,

        bool bForceAppsClosed,

        bool bRebootAfterShutdown,

        uint dwReason);


    public static void ForceReboot()

    {

        // 方法1: 通過系統關機API

        InitiateSystemShutdownEx(

            null,           // 本機

            "強制重啟",     // 顯示消息

            0,              // 立即執行

            true,           // 強制關閉程序

            true,           // 重啟

            0x80000000);   // 原因代碼


        // 方法2: 通過硬錯誤觸發(僅作技術演示)

        // int response;

        // NtRaiseHardError(0xC000021C, 0, 0, IntPtr.Zero, 6, out response);

    }

}

    

// 使用示例

SystemRebooter.ForceReboot();

注意事項:

  1. 管理員權限:兩種方法都需要以管理員身份運行程序

    • 在Visual Studio中:右鍵項目 → 添加 → 新建項 → 應用程序清單文件 → 修改

    • ?<requestedExecutionLevel level="requireAdministrator"/>

    • 已編譯的程序:右鍵exe → 屬性 → 兼容性 → 勾選"以管理員身份運行"

  2. 數據丟失警告:強制重啟不會保存未保存的工作,謹慎使用

  3. Windows版本:代碼適用于Windows 7/8/10/11全系版本

  4. 安全軟件攔截:部分安全軟件可能會阻止強制重啟操作

建議優先使用方法1,因為:

  • 代碼更簡潔

  • 直接調用系統原生命令

  • 兼容性更好

如果需要更底層的控制(如自定義關機原因代碼),可以使用方法2中的API方式。實際開發中建議添加用戶確認對話框和日志記錄功能。


該文章在 2025/5/12 20:46:30 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲色影在线网站 | 亚洲欧美v人片在线观看 | 亚洲aⅴ欧美综合一区二区三区 | 亚洲人成网站综合 | 午夜福利福利AV | 亚洲中文乱码AV网站 |