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

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

C# 32位/64位系統(tǒng)下程序讀寫注冊表之差異

admin
2021年2月18日 18:27 本文熱度 4405

  用C#實現(xiàn)注冊表的讀\寫是一件很容易的事情,在此不做詳細的講解。

  用C#操作注冊表主要用到的兩個函數(shù)為(已經(jīng)滲透到下面的實例程序中,注:要引入Microsoft.Win32命名空間):

      1:讀取鍵值-->Registry.LocalMachine.OpenSubKey(“..Key的路徑...”, true),這里的第2個bool類型的參數(shù)含義為:標志打開的鍵值是否可以更改(即:是否可以用SetValue()給鍵賦值),然后調(diào)用GetValue()方法就能把鍵值讀取出來。

      2:寫入鍵值-->Registry.LocalMachine.CreateSubKey("..Key的路徑..."),然后調(diào)用SetValue()寫入鍵值。

  這里主要講解一下32位程序和64位程序在64位平臺上讀\寫注冊表的區(qū)別【注:32位程序是-->Build的Platform target為X86;64位程序-->Build的Platform target為X64;并且VS2010在默認的狀態(tài)下為X86編譯環(huán)境(即:32位)】

  簡要復述一下理論基礎(chǔ):微軟為了讓32位程序不做任何修改就能運行在64的操作系統(tǒng)上,添加了一個十分重要的WOW64子系統(tǒng)來實現(xiàn)這個功能,WOW64是Windows-32-on-Windows-64的簡稱,從總體上來說,WOW64是一套基于用戶模式的動態(tài)鏈接庫,它可以把32位應用程序的發(fā)出的命令翻譯成64位系統(tǒng)可以接受的格式,即:WOW 層處理諸如在 32 位和 64 位模式之間切換處理器以及模擬 32 位系統(tǒng)的事務。

  32位與64位特點的兩個重要表現(xiàn)方面為:文件系統(tǒng)與注冊表。

      文件系統(tǒng):32位進程不能加載64位Dll,64位進程也不可以加載32位Dll。

      注冊表:為了防止注冊表鍵沖突,64位機器注冊表信息分成了兩個部分。一部分是專門給64位系統(tǒng)(即:64位程序)訪問的,另一部分是專門給32位系統(tǒng)(即:32位程序)訪問的,放在Wow6432Node下面。(Wow6432Node這個節(jié) 點存在于HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER下面)

  既然知道了注冊表信息分成了兩部分,那么就可以想到:用32位程序和64位程序去操作注冊表的時候會操作不同位置的注冊表信息。下面例子可以充分證明這種說法。

1 using System;
2  using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Microsoft.Win32;
6
7 namespace OperateRegistrationTable
8 {
9 class Programe
10 {
11 static void Main(string[] args)
12 {
13 OperatingRegistryKey();
14 }
15
16 public static void OperatingRegistryKey()
17 {
18 string keyValue = string.Empty;
19 try
20 {
21 //向注冊表中寫信息
22 using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\EricSun\MyTestKey", true))
23 {
24 if (key == null)
25 {
26 using (RegistryKey myKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\EricSun\MyTestKey"))
27 {
28 myKey.SetValue("MyKeyName", "Hello EricSun." + DateTime.Now.ToString());
29 }
30 }
31 else
32 {
33 key.SetValue("MyKeyName", "Hello EricSun." + DateTime.Now.ToString());
34 }
35 }
36
37 //讀取注冊表信息
38 using (RegistryKey currentKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\EricSun\MyTestKey", false))
39 {
40 if (currentKey == null)
41 {
42 Console.WriteLine("Hello EricSun, The Key you tried to open doesn''t exist.");
43 }
44 else
45 {
46 keyValue = currentKey.GetValue("MyKeyName").ToString();
47 Console.WriteLine("The Key Value is: {0}", keyValue);
48 }
49 }
50 }
51 catch (Exception ex)
52 { }
53 }
54 }
55 }
56

  將此段程序在X86(32位)平臺下編譯、運行,會發(fā)現(xiàn)在注冊表的WOW6432Node節(jié)點下創(chuàng)建了子鍵:EricSun\MyTestKey,并且填充了鍵MyKeyName的值(用時間加以區(qū)分其值),而在SoftWare的第一層子節(jié)點中并沒有發(fā)現(xiàn)此EricSun??梢源_定32位程序是操作注冊表信息是放在WOW6432Node節(jié)點下的

  若我們對這段程序不做任何修改,在X64(或Any Cpu)的平臺下編譯、運行的話,會發(fā)現(xiàn)在注冊表的SoftWare節(jié)點的第一層子節(jié)點中創(chuàng)建出了EricSun節(jié)點(并在此節(jié)點下創(chuàng)建相應的注冊表信息),然后我們用同樣的程序去讀注冊表的時候也會發(fā)現(xiàn)他們讀取的地方不同(以程序中的時間信息加以區(qū)分)

  總結(jié):X64,(或者Any Cpu) Platform下的程序會操作64位機器存放注冊表位置的注冊表信息,X86 Platform下的程序會操作32位機器存放注冊表位置的注冊表信息(即:WOW6432Node節(jié)點下的注冊表信息)

  若想知道用32位程序如何操作64機器的注冊表信息,請關(guān)注我的下一篇文章: http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/21/1941225.html


該文章在 2021/2/18 18:27:33 編輯過

全部評論2

admin
2021年2月18日 22:37
參考教程:
C# 32位程序自動判斷當前操作系統(tǒng)是32位/64位版本并更改注冊表實現(xiàn)自動登錄Windows和開啟某個程序
admin
2021年2月19日 8:15
RegistryKey localKey;
if (Environment.Is64BitOperatingSystem)
{
	localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
}
else
{
	localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
}
RegistryKey subKey = localKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot");
string value = subKey.GetValue("Path").ToString();

很簡單,首先,Environment.Is64BitOperatingSystem 判斷是否是64位的操作系統(tǒng)。

然后通過注冊表打開目錄時,傳入相應的RegistryView枚舉即可。注意:打開注冊表時,調(diào)用的是OpenBaseKey方法!


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

日本男女,中文字幕| 久久久内射日本人| CaoPorn-另类| 欧美 成人 国产 超清| 伊人 久久爱| 国产日本一区免费| 日本 午夜 三级| 青青玖玖在线观看| 大香伊人97在线| 久久大鸡巴日老B免费视频| 亚黄鸡巴操逼逼| 亚洲熟妇色XXXXX成人影片| 五月天欧美美女香蕉爱爱| 国产亚洲综合久久久久久 | AV大陆一二三AV| 欧美在线影院以一区二区三区| 91中文麻豆| 日韩欧美伦理三级片在线播放| 精品无码白虎骚逼喷水| 日本欧美久久一区| 啪啪成人一区| 自拍偷拍亚洲天堂| 色婷婷亚洲精品综合影院百度| 久久青青黄| 国产一区二区91久久| 91人人妻在线| 中国三级精品视频二区三区四区 | 中文字幕欧美人妻在线一区二区| 天天弄天天爽天天射| 日本屄久久| 青青草成人一区| www亚洲精品少妇裸乳一区二区| 中文字幕av爽一区| 大香蕉久久视频在线观看| 成人高考时间| 首页国产熟女| 久久AV在线看免费国产| 欧美精点久久久久久久| 久久久久按摩电影| 日韩精品自拍偷拍| 中国美女被狂操|