【工作記錄】c#操作win7註冊表

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   strong   

     這裡講一 C# 小列子(高手請繞過此地! ), 我們平時都是在xp開發比較多...不過現在很多開發人員也在win7下開發了。

     下面是在 LocalMachine 下的 一下註冊表操作 ,就不詳說了

private static void DeleteRegistry(string name)
{
string[] aimnames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.OpenSubKey("Microsoftss", true);
aimnames = aimdir.GetSubKeyNames();
foreach (string aimKey in aimnames)
{
if (aimKey == name)during-pregnancy 
aimdir.DeleteSubKeyTree(name);
}
}

private static string GetData(string name)
{
string registData;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.OpenSubKey("Microsoftss", true);
registData = aimdir.GetValue(name).ToString();
return registData;
}

private static void WriteValue(string name, string tovalue)
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.CreateSubKey("Microsoftss");
aimdir.SetValue(name, tovalue);
}

private static bool IsExit(string name)
{
bool _exit = false;android中記錄讀取配置資訊 
string[] subkeyNames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.OpenSubKey("Microsoftss", true);
subkeyNames = aimdir.GetValueNames();
foreach (string keyName in subkeyNames)
{
if (keyName == name)
{
_exit = true;
return _exit;
}
}
return _exit;
}

      比如,當我們在xp系統下 軟體執行Writevalue("版本號碼","v1.0.0.1"),一切都ok! 然後樂的就拋給了客戶...沒有思考。

一天客戶換了win7系統 ,運了軟體了。客戶拉著42號鞋子的臉說,怎麼軟體在win7不能運行了....。問題就是上面開頭說的了。

解決方案 是有地....

        這裡列舉幾種.

        第一種 、教教客戶、或者技術服務人員就好了。這個方法不需要修改我們的代碼這是好處之一。只要, 點擊.exe 右鍵

,在彈出的菜單中選擇【屬性】, 選擇【相容性】項,並勾選【以管理員身份運行此程式】就ok了。簡單吧 

        第二種 、也算簡單,不過我們就要重建軟體 了。首先、在程式中加入MANIFEST資源,右擊工程在菜單->【屬性】->【安全性】,在介面中勾選【啟用ClickOnce安全設定】,在項目的Properties 下就有自動產生app.manifest 檔案。

        檔案內容如下:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清單選項
如果希望更改 Windows 使用者帳戶控制層級,請用以下節點之一替換
requestedExecutionLevel 節點。

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

如果您希望利用檔案及登錄模擬提供
向後相容性,請刪除 requestedExecutionLevel 節點。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
</asmv1:assembly>

  把 < requestedExecutionLevel level = " asInvoker " uiAccess = " false " /> 的 asInvoker 改為"requireAdministrator "。重新編譯一下就ok了。

看到這個了吧!

這就是UAC(使用者帳戶控制)了

<!-- UAC 清單選項

          如果希望更改 Windows 使用者帳戶控制層級,請用以下節點之一替換

          requestedExecutionLevel 節點。

 

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

     <span style="color: #ff0000;"><strong> <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /></strong></span>

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

 

          如果您希望利用檔案及登錄模擬提供

          向後相容性,請刪除 requestedExecutionLevel 節點。

      -->

還有其他的方法。不過上面兩種比較簡單...。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.