C# 32位程序访问64位系统注册表

  我的上一篇小说已经演说了“32位程序和64位程序在64位平台上读\写注册表的界别”,那么接下去就要回答上篇所留下来的一个题材:32位程序如何访问64位系统注册表(即:64位程序所访问的注册表地点)。

葡京娱乐总站平台 1

  大家已主任解:

序言

    ①:本机形式 64
位程序运行在纯情势下,并且访问键和储存在偏下注册表子键中的值:HKEY_LOCAL_MACHINE\Software

本文重要从追溯“会计”专业的发源为我们提供一些有意思的视角,穿越时空,一窥古往今来会计从业者们的办事内容、技能应用和时代趋势。

    ②:32 位程序运行在 WOW64
格局下,并且访问键和值存储在偏下注册表子项中:HKEY_LOCAL_MACHINE\Software\WOW6432nod

著作将通过“追溯古老的文明礼貌”、“会计历史灯塔事件”等许多方面,带你打探会计发展史上的机要节点以及这么些最终塑造了现代会计专业的人是什么人也!

  那么要落实32为顺序访问64位注册表信息,还要领会如下概念:1:文件系统转向。2:注册表重定向(转向)。3:注册表反射。

“会计技术”起点

    ①:文件系统转向

当代探究表明,大约在明朝文明之时,人们就起来运用原来的先生技术。大量信物表明,西魏的众人将黄金、银子和谷类的库存数据刻录在石板之上。

    32
位进程不可能加载64位Dll,64位过程也不得以加载32位Dll。Windows的系统目录包含了颇具安装的应用程序和它们的Dll文件,依照咱们所述
的规则,

这些记录还未曾兼具现代会计方法的纷繁,它们常常只囊括费用、资产和付款的清单。此类记录始见于埃及和美索不达米亚出图的粘土制品,最早可追溯至公元前3300年,当时的当局财务工作要求列出基本会计音讯。

    它应当被分成给64位应用程序的目录和给32位应用程序的目录。假诺不这么,我们就不可以区分32位和64位的Dll文件。对于64位应用程序,其
文件一般被

葡京娱乐总站平台 2

    放在%windir%\system32和%programfiles%(比如:c:\program
files)。对于32位应用程序,其文件一般在%windir%\syswow64和

注:纸莎草会计记录

    C:\program files
(x86)下面。假诺我们用32位程序去访问%windir%\system32,不管大家用硬编码如故此外的措施,系统都会自行地给我们

在对古亚述、古巴比特伦和古苏美克赖斯特彻奇的废墟进行考古挖掘时,人们发现了大约7000多年前的出纳记录。在纸莎草或石头上详细列有粗略的分类账,这让贸易商和公司家可以跟踪采购和销售场合,并盘算农业、贸易和其余商业公司的得利或损失。

    转向到%windir%\syswow64上边。这种转化对于每个32位应用程序默认都是打开的。不过这种转化对于我们来说并不总是需要的。那么我们可以在

古伊朗人以及更近一点的腓尼基人和罗马人,他们设定了出纳实务的基本原理,这多少个原理在众人对会计早期发展的历史探究中全体拿到了反映,而这么些先前时期发展奠定了现代会计学的基础。

    C#其间调用相关的API来关闭和开拓这种转化。常用的函数有3个:

葡京娱乐总站平台 3

        Wow64DisableWow64FsRedirection(关闭系统转
向),

注:盖维斯·屋大维·奥古斯都(公元前63年至公元14年)

        Wow64RevertWow64FsRedirection(打开系统转向),

开普敦帝国国君奥古斯都为了澄清自己建筑物、宗教祭奠场合的市值以及剧院演出的付出,使用了初级的管理会计技术。

        Wow64EnableWow64FsRedirection(打
开系统转向)。

其它,奥斯陆帝国还索要开展审计和制定规定,以查处涉嫌作弊的赫尔辛基大王的行为。知名的杜塞尔多夫将军马克·安东尼(安东尼)(马克安东尼(Anthony))在朱利叶斯(朱利叶斯(Julius))·凯撒(朱利叶斯(Julius)Caesar)遇刺之后成功上位,他一样因落水、滥用公共成本以及为所谓的“阴暗交易”肆无忌惮地挥霍金钱而显明。

    可是Wow64EnableWow64FsRedirection在嵌套使用的时候不可靠,所以普通用地点的
Wow64RevertWow64FsRedirection来打开文件系统转向

葡京娱乐总站平台 4

    功能。在C#中,大家得以接纳DllImport直接调用这五个函数。

注:文艺复兴三杰(列昂纳多·达芬奇、米开朗基罗·博这罗蒂、拉斐尔·桑西)

    ②:注册表重定向(转向)

不过,直到十三世纪初,会计才真的具有了大家前些天所熟悉的当代雏形,大约在1210年左右,意大利有色时期的文献显现了复式分录记账的痕迹。

    若要援助的 32 位和 64 位 COM
注册和程序共存状态,WOW64 子系统提供 32
位程序选拔的注册表的另一个视图。在 WOW64 子系统使用注册表

商人的计量涉及借贷方以及资本支出,供投资者、首席执行官和商人对关联本人的便宜举行查处。而会计师是面临自身所认同的根本道德和宗派影响的促动。神的过问,对“生”和“死”举行计数的信念,对一个人的一言一行加以完善的笔录,这多少个因素诱使商人每一天都会存在会计数据。

    重定向截获位级另外注册表调用。注册表重定向还足以确保登记表调用被定向到在注册表中正确的分段。

葡京娱乐总站平台 5

    当我们设置新程序或 Windows x64
版的电脑上运行程序时,所做的 64 位程序的注册表调用访问
HKEY_LOCAL_MACHINE\Software 注册表子键

注:“近代先生之父”卢卡·帕乔利(公元1445年至1517年)

    不重定向。WOW64 截获由 32
位程序的挂号表调用到 HKEY_LOCAL_MACHINE\Software,然后将它们重定向到

在这种背景下,一个关键人物——卢卡·帕乔利出现了,他于1494年在其撰写《算术、几何、比及比例大概》(Summa
de Arithmeticà, Geometria,Proportioni et
Proportionalita)中写了一篇有关记账的杂文,随后又举行撰写了复式记账会计。

    HKEY_LOCAL_MACHINE\Software\WOW6432node
子键。 通过重定向仅 32 位程序调用,WOW64
可保证程序始终写入相应的登记表子键。

随着,帕乔利推广这种翻新的记账方法,并跟踪和钻研威科尔多瓦商人的财务实践,他最终被称作“近代先生之父”。在15世纪,他亲历了货币经济工作在平凡交易中对“借方”和“贷方”的运用。

    注册表重定向不要求程序代码修改,和此过程是对用户透明。

作为一个数字研商者,帕乔利还指出了部分数学迷题,而他的记账法则被视为会计实务的正规化文件。他让公司家可以利用账户序列,那为后来的现世会计系列打下了坚实基础。

葡京娱乐总站平台,    ③:注册表反射

再怎么强调帕乔利贡献的重大都不为过。他提交了这样多的用力,让会计终于得以形成,让账户编制可以运用她所创立的正规化分类账。

    反射使四个一律的注册表,以支撑同时拓展的本机和
WOW64 操作的物理副本的存在,

受宗教心绪所影响,如同关心人的贤惠和自己与上帝的关系一样,帕乔利同样关注商业的管理工具。在17世纪,股份公司的出现让帕乔利公式又提升了一步,因为人们需要一套可靠的账户,以便在列报和著录账户时持有财务上的便利性,并能由独立的表面审计师执行年限审计。

    打开注册表的 64
位节在富有时间和注册表反射提供了一种容纳 32 位的实时方法。

葡京娱乐总站平台 6

  简单的打听了那么些,下边说一下切实可行的贯彻步骤:

注:工业革命时期的大不列颠及英格兰联合王国伦敦(London)

    关闭64位(文件系统)的操作转向

在大不列颠及苏格兰联合王国工业革命时期,商业扩展是经济发展史上的又一个里程碑,印证了帕乔利所发明的一些方法的首要性。例如,为了衡量其在金融市场的净利润和损失,纺织品创建业发挥了更加的推动意义。在19世纪,铁路公司里面的不正当和欺诈行为为规范商业活动提供了额外动机。

      拿到操作Key值的句柄

只是这种监管案例并不是会计专业在19世纪发展的天下第一形象。在英格兰,律师为经纪人提供会计服务的同时会计专业人才也足以引入,因为商人们希望确保自己的账面是井然有序的。

        关闭注册表转向(禁止特定项的注册表反射)

有限责任公司的出现使得对合作社账户的要求不止充实,在1854年,大约50名伊丽莎(Lisa)白港会计师向维Dolly亚(维多利(Dolly)亚)女王提出制定《皇家宪章》(Royal
Charter)

      获取访问的Key值

葡京娱乐总站平台 7

        打开注册表转向(开启特定项的注册表反射)

注:北爱尔兰及威尔(威尔(Will))士特许会计师协会(ICAEW)

    开启64位(文件系统)的操作转向

1880年,一些标准团体通过整合创设了苏格兰及威尔士特许会计师社团(ICAEW)。最初,该社团拥有600名登记在册的会员,并引入了试验机制。国际贸易、道路桥梁及铁路建设等工程工作以及纺织品创立的迈入还要指出了金融监管和审计的渴求。

  【注:由于我们在先后中用了DllImport,所以要引入命名空间:System.Runtime.Interop瑟维斯(Service)(Service)s】

葡京娱乐总站平台 8

  下面请看代码示例

注:美利坚同盟国注册会计师社团(AICPA)

 

并且,美利坚合众国创制了United States注册会计师社团(AICPA)。因而,到了十九世纪末,会计专业具备了当代情势,其类似于现在先生的劳作。

  using System;  
  using System.Collections.Generic;  
  using System.Linq;  
  using System.Text;  
  using Microsoft.Win32;  
  using System.Runtime.InteropServices;  

  namespace OperateRegistrationTable  
 { 
     class Programe 
     { 
         static void Main(string[] args) 
         { 
             string myParentKeyName = "HKEY_LOCAL_MACHINE"; 
             string mySubKeyName = @"SOFTWARE\EricSun\MyTestKey"; 
             string myKeyName = "MyKeyName"; 

             string value = string.Empty; 
             value = Utility.Get64BitRegistryKey(myParentKeyName, mySubKeyName, myKeyName); 
             Console.WriteLine("The Value is: {0}", value); 
         } 
     } 

     public class Utility 
     { 
         #region 32位程序读写64注册表 

         static UIntPtr HKEY_CLASSES_ROOT = (UIntPtr)0x80000000; 
         static UIntPtr HKEY_CURRENT_USER = (UIntPtr)0x80000001; 
         static UIntPtr HKEY_LOCAL_MACHINE = (UIntPtr)0x80000002; 
         static UIntPtr HKEY_USERS = (UIntPtr)0x80000003; 
         static UIntPtr HKEY_CURRENT_CONFIG = (UIntPtr)0x80000005; 

         // 关闭64位(文件系统)的操作转向 
          [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
         public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr); 
         // 开启64位(文件系统)的操作转向 
          [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
         public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);     

         // 获取操作Key值句柄 
          [DllImport("Advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
         public static extern uint RegOpenKeyEx(UIntPtr hKey, string lpSubKey, uint ulOptions, int samDesired, out IntPtr phkResult); 
         //关闭注册表转向(禁用特定项的注册表反射) 
         [DllImport("Advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
         public static extern long RegDisableReflectionKey(IntPtr hKey); 
         //使能注册表转向(开启特定项的注册表反射) 
         [DllImport("Advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
         public static extern long RegEnableReflectionKey(IntPtr hKey); 
         //获取Key值(即:Key值句柄所标志的Key对象的值) 
         [DllImport("Advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
         private static extern int RegQueryValueEx(IntPtr hKey, string lpValueName, int lpReserved, 
                                                   out uint lpType, System.Text.StringBuilder lpData, 
                                                   ref uint lpcbData); 

         private static UIntPtr TransferKeyName(string keyName) 
         { 
             switch (keyName) 
             { 
                 case "HKEY_CLASSES_ROOT": 
                     return HKEY_CLASSES_ROOT; 
                 case "HKEY_CURRENT_USER": 
                     return HKEY_CURRENT_USER; 
                 case "HKEY_LOCAL_MACHINE": 
                     return HKEY_LOCAL_MACHINE; 
                 case "HKEY_USERS": 
                     return HKEY_USERS; 
                 case "HKEY_CURRENT_CONFIG": 
                     return HKEY_CURRENT_CONFIG; 
             } 

             return HKEY_CLASSES_ROOT; 
         } 

         public static string Get64BitRegistryKey(string parentKeyName, string subKeyName, string keyName) 
         { 
             int KEY_QUERY_VALUE = (0x0001); 
             int KEY_WOW64_64KEY = (0x0100); 
             int KEY_ALL_WOW64 = (KEY_QUERY_VALUE | KEY_WOW64_64KEY); 

             try 
             { 
                 //将Windows注册表主键名转化成为不带正负号的整形句柄(与平台是32或者64位有关) 
                 UIntPtr hKey = TransferKeyName(parentKeyName); 

                 //声明将要获取Key值的句柄 
                 IntPtr pHKey = IntPtr.Zero; 

                 //记录读取到的Key值 
                 StringBuilder result = new StringBuilder("".PadLeft(1024)); 
                 uint resultSize = 1024; 
                 uint lpType = 0; 

                 //关闭文件系统转向  
                 IntPtr oldWOW64State = new IntPtr(); 
                 if (Wow64DisableWow64FsRedirection(ref oldWOW64State)) 
                 { 
                     //获得操作Key值的句柄 
                     RegOpenKeyEx(hKey, subKeyName, 0, KEY_ALL_WOW64, out pHKey);

                     //关闭注册表转向(禁止特定项的注册表反射)
                     RegDisableReflectionKey(pHKey);

                     //获取访问的Key值
                     RegQueryValueEx(pHKey, keyName, 0, out lpType, result, ref resultSize);

                     //打开注册表转向(开启特定项的注册表反射)
                     RegEnableReflectionKey(pHKey);
                 }

                 //打开文件系统转向
                 Wow64RevertWow64FsRedirection(oldWOW64State);

                 //返回Key值
                 return result.ToString().Trim();
             }
             catch (Exception ex)
             {
                 return null;
             }
         }

         #endregion
     }
 }

中华“会计”称谓由来探索

  

葡京娱乐总站平台 9

Get64BitRegistryKey函数的两个参数分别表示:主键名(如:HKEY_LOCAL_MACHINE等),子键名,Key名,重回的是Key的Value(64位系统注册表的键值),通过地方的艺术就完全可以实现用32先后访问64位系统注册表(即:64位程序所走访的注册表地点)。

这就是说在中原我们常说的“会”“计”二字又是怎么得来的呢?,对于我国会计称谓的成因、有各类不同的说法,有一种看法认为在禹夏时期,大禹王曾在江南茅山举行过五遍诸侯会议,考评诸侯的功业。这一次计功大会刚刚停止,大禹王便死了。当时,诸侯们召开了隆重的葬礼,把她的遗骸安葬在茅山上。为了回忆大禹和他主持召开的这一次会议,经公爵商定,把茅山更名为“会稽山”。而以此“会稽”便是先天“会计”的起点。接下来又有人发展了这一风传,他们把大禹王召开的本次会议,说成是“我国历史上第一回主计会议”。

葡京娱乐总站平台 10

注:大禹王(公元前2070年至公元前2025年)铸像

有人不容许这种说法,他们是用两本最早记载有“会计”二字的古书来否认上述传说的。这两本书一本叫作《周礼》,一本叫作《孟子》。他们觉得由于《周礼》和《孟子》都是商朝时代的著述,故“会计”二字的来源当在西周时代。

实在,第一种说法证据不足,其结论未免过于轻率;而第二种说法又过于拘谨,以至忽视了一个的实际,从而使和谐的论据处在自相顶牛的情景之中。因为他俩在肯定《孟子》成书于有穷时代的同时,也认同《孟子》中所记载的尼父关于:“会计,当而已矣”的言论。不过尼父出生在春秋,而不是在有穷,既然认同孔仲尼的一句名言,那么按道理讲,“会计”命名的根源当在春秋,而不在西周。

骨子里“会计”二字的成因及命名的起点发生于夏朝时代,它的发生经历着一个长久而又特别幽默的过程。

在有穷在此以前所运用的文字中,尚未发现开会的“会”字,也无“会计”二字。当时人们发布“开会”、“集会”、“会师”之类的情致用的是“合”字;反映事物数量的扩充用的是“合”字。由于“合”字的用处较多,在采取过程中人们更是感觉不便利,而且也进一步感觉用“合”字来抒发意思很不对劲、妥当。这样,大约到有穷中先前时期,人们便遵照“开会”及“会计”那七个地点的涵义逐渐在搜寻创制新的字形,最后到底使那二方面的涵义从“合”字中分离出来。这些被成立出来的新字形便是金文中的“会”。

先生中的“计”字是由“十”和“言”这六个母体字组合而成的,“计”字的含义包含于“言”和“十”之中。相传在远古时代,人们一般把部落所在地称为中央,把部落的四周区别为四方,即现在所讲的东西南北四方,而焦点与四方组合在一起,便构成了“十”字的形体。这时候,每逢出猎,部落里的领袖便依据四方分派猎手。分四路出去,而后又按这四部重返部落。依照确定,各路出猎归来必须可靠告知捕获猎物的多少,最终由部落首领汇总结算,求得一个总额,以便考虑所获猎物在部落范围内的分红问题。这种零星总计四方收获猎物的行动,便构成了“计”字一方面的涵义。

在远古时代,当文字和书写工具没有发明的时候,各路出猎者向部落首领报告猎物数目是用口头语言加以表明的。不同品种的猎物各是稍稍,总共是稍稍,都务求正确、真实地表达出来,不容许隐瞒和虚报。那种科学而无隐徇的口头统计与报告便又构成了“计”字的一派涵义。这样,“言”与“十”合成一起便构成了“计”字的躯壳,而“言”与“十”这两方面的涵义合一,便使“计”字具有无可争辨进行统计的趣味。

武周时,我国汉朝老牌的文字家许慎在《说文解字》这部著作中对“会计”二字又从字义上作出详解,其中尤为强调“计”字中富含正确总计之意。元朝的文字训诂学家段玉裁,也在他的《说文解字注》一书中对“会“字的咬合作了详细的证实。同时,东晋地文学家焦循针对西周时人们对于“会计”概念的认识提出:“零星算之为计,总合算之为会。”这是对于西周时代“会计”概念的科学总计。

“人工智能”时代的出纳技术

葡京娱乐总站平台 11

在20世纪末年,各行各业对电脑技术的借助日益强化,到现行,在海内外限量内,已经出现了大气的业内会计协会。

国际间的相互看重盛于以往,这导致诸如“四大会计师事务所”等重大公司插手者的面世,在后日的世界中,无论是经济增长依然失利,都急需会计师提供财务专业知识和敏感洞察以搜集、分析数据并告之客户。

当下观念的先生处理形式,都是内需会计人员选拔“目视辨别+手工操作”的章程来完成票据信息的录入,然后还要依据分录的两样对应合规票据进行归类汇算,效用并不是很高,而且极容易总括出错。但随着当前“人工智能”技术的日趋成熟和AI热潮席卷全球,那种场馆,将会出现颠覆式的改动,比如像国内的一款号称“芸豆会计”的智能财务软件,利用自主研发的OCR识别技术(OCR即光学字符识别技术,是指用扫描仪或单反,检查纸上打印的字符,然后通过辨认软件将图像中的文字转换成文本格式的进程。)能将原来需要会计手工录入的发票,通过放入扫描仪举行扫描,就可自动识别并提取票面上会计所需的发票音讯,然后自行导入到“芸豆会计”线上的系统中,系统则依据发票的项目、类型自动分录归类,并自动核算。这样不但大幅提升了处理单据的频率,而且容错率很高,还是可以逃脱出错后再度检查发生的年华资产,可谓大大解放了记账的主干录入需求。据理解“芸豆会计”如今已协理5万余种票据的围观识别,基本包含了会计平时要处理的有着发票连串。

可以看来像“芸豆会计”这类利用新兴技术的实际上拔取,已经上马逐年推进会计行业技术的变革。

还有就是“云会计”概念的破茧而出。所谓云会计,其实就是会计账务处理的“云总计化”。使用复式记账法为基准,以关系型数据库为底蕴,一般都囊括:总帐模块、应收应付模块、银行现金账模块等。传统会计只可以在一台授权的电脑或局域网中才能操作使用。会计“云统计”的不同之处在于它是在线会计软件,可以透过互联网随时随地接入系统应用,以前提过的“芸豆会计”软件也是这种操作情势.

会计师“云总括”的要害优势在于:

1、可降低企业财务会计、管理会计的音信化运作基金,公司方可按照需要,从每个服务供应商这里单方面地购入总计能力。

2、可以兑现集团财务会计、管理会计的信息移动办公,会计核算可以随时随地的开展,会计资料可以随时随地查看。

3、加强了信用社消息化运行形式,使得集团财务会计部门与此外生产、销售单位中间的无缝过渡。

4、解放了汪洋的人工,使得财务职员不用将精力、时间投放在实际的财务账目,而是转向能为商家带来价值创建的本金运营移动中去。

理所当然,每种事物在极尽便利的同时,也会有一定的局限性,像是会计“云总结”在上扬中也会赶上可预见的劣势:

1、运营商提供的先生“云统计”平台建设和服务还不到家,不可以满足集团的需要。目前运营商所能提供的出品或劳动效果单一,受到各个技术的范围,所可以提供的制品和劳务在效益上、应用上远远不可能满意用户的需要。

2、消息安全的信任问题。据查明呈现,当前有87%的店家对“云总结”担心最多的就是消息安全题材,消息安全题材得不到保障,绝大多数合作社用户是不会承受这一出品或者服务的,因为会计音信大多涉及集团的为主,一旦受到泄漏后果不可捉摸。

3、云终端音信处理能力的峰值受限。众多小卖部都会将团结的消息传送到云终端,在如此宏大的音讯面前,服务器的运行和处理能力将变为紧要的考验,频繁的数码存取和海量的数码交换会造成数据延时和网络堵塞。网络传输的负载能力变成云总计应用于先生音信化的一个瓶颈。

即便会计“云总计”的优缺点都相当彰着,但它依旧是前景不可逆袭的大趋势,不仅多家国内外重量级分析机构确认,而且不少国度也逐步地建立了会计“云总结”的进化战略性。

终论

葡京娱乐总站平台 12

通过以上的例证大家看到,古往今来,会计那一个有沉重历史沉淀的本行,从来随着历史的车轱辘不止变更、演进……并逐渐形成了一套适应自己发展的体系和路径,最大的特点就是它富有极强的适应性,每两回的野史变革和技艺颠覆,都能成为它自身提升的营养。

大家得以信任在将来新时代网络技术的背景下,“会计”必会迸发出比往年越发有生机的肥力;在国家以及商店的一块儿推动下将取得立异的全面进步,市场也将释放出更常见的行使需求。届时会计行业也必定会重复找到打开新时代大门的钥匙。

微信公众号:小豆会计/芸豆会计