首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 登錄表實戰範例一:自訂「開始」選單可見項目

     編輯:關於C語言

需求背景

企業環境常需鎖定桌面,防止使用者存取「執行」、「搜尋」、「控制台」等功能。Windows 將這些設定儲存在 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 下的 DWORD 值中。

常見鎖定鍵值對照表

值名稱值=1 效果
NoClose隱藏「關機」
NoRun隱藏「執行」
NoFind隱藏「搜尋」
NoSetFolders隱藏「控制台」與「印表機」
NoSetTaskbar隱藏「工作列與開始選單屬性」
NoLogOff隱藏「登出」
NoRecentDocsMenu隱藏「我的文件」

完整程式碼

using System;
using Microsoft.Win32;

class RegTest {
    public static void Main() {
        // 取得目前使用者根鍵
        RegistryKey baseKey = Registry.CurrentUser;
        // 建立或開啟目標子鍵
        RegistryKey policyKey = baseKey.CreateSubKey(
            @"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
        // 寫入 DWORD = 1
        policyKey.SetValue("NoFind", 1);
        policyKey.SetValue("NoRun", 1);
        policyKey.SetValue("NoSetFolders", 1);
        // 釋放資源
        policyKey.Close();
        Console.WriteLine("Start menu restrictions applied.");
    }
}

執行與驗證

  1. 以一般使用者身分執行程式。
  2. 重新登入或重啟 explorer.exe 即可生效。
  3. 若需還原,手動刪除對應值或設為 0。

注意事項

  • 修改登錄表具風險,建議先匯出備份(reg export)。
  • 群組原則若已設定同樣鍵值,本機設定可能被覆蓋。
  • 針對多使用者環境,可改寫 Registry.Users 下各 SID 對應分支。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved