观察古阅今,芸豆会计带你看老“会计”演化史!

  我之上平等首文章就阐述了“32各类程序和64各项程序在64各平台上宣读\写注册表的别”,那么接下就要对上篇所留下来的一个问题:32各程序如何看64个系统注册表(即:64员程序所走访的注册表位置)。

  我们曾经掌握:

序言

    ①:本机模式 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号应用程序,其
文件一般为

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

流淌:纸莎草会计记录

    C:\program files
(x86)下面。如果我们为此32各类程序去访问%windir%\system32,不管我们所以硬编码还是另外的法,系统还见面自动地于咱

以针对古亚述、古巴比伦以及古苏美利亚底残垣断壁进行考古挖掘时,人们发现了大致7000大抵年前之出纳员记录。在纸莎草或石头上详细列有略的分类账,这被贸易商及企业家能跟采购及销售场面,并盘算农业、贸易和外商业店铺之致富或损失。

    转向到%windir%\syswow64下面。这种转化对每个32个应用程序默认都是开辟的。但是这种转化对咱们来说并无连续要的。那么我们可于

古老伊朗丁跟再近乎一点底腓尼基人和罗马人数,他们设定了出纳实务的基本原理,这些规律在众人对先生早期发展的历史研究中全部得到了反映,而这些前期发展奠定了现代会计学的底子。

    C#其间调用相关的API来关闭与开辟这种转化。常用之函数有3独:

        Wow64DisableWow64FsRedirection(关闭系统转
向),

流动:盖维斯·屋大维·奥古斯都(公元前63年交公元14年)

        Wow64RevertWow64FsRedirection(打开系统转向),

罗马帝国国君奥古斯都为了澄清自己建筑物、宗教祭祀场所的价与剧院演出之支出,使用了丙的保管会计技术。

        Wow64EnableWow64FsRedirection(打
开系统转向)。

此外,罗马帝国还需开展审计和制定规定,以核涉嫌作弊的罗马大王的表现。著名的罗马将军马克·安东尼(Mark
Anthony)在朱利叶斯·凯撒(Julius
Caesar)遇刺后成功上位,他一如既往因为落水、滥用公共资金暨为所谓的“阴暗交易”肆无忌惮地挥霍金钱而强烈。

    但是Wow64EnableWow64FsRedirection在嵌套使用的下不可靠,所以便用地方的
Wow64RevertWow64FsRedirection来开辟文件系统转向

    功能。在C#遭逢,我们得动用DllImport直接调用这简单单函数。

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

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

但,直到十三世纪新,会计才真的享有了俺们今天所熟识的现世雏形,大约于1210年左右,意大利文艺复兴时期的文献显现了复式分录记账的痕迹。

    若一旦支持之 32 位和 64 位 COM
注册和次序共存状态,WOW64 子系统提供 32
位程序下的注册表的别一个视图。在 WOW64 子系统运用注册表

商贩的计涉及借贷方以及资本支出,供投资者、经理以及商贩对涉及自己的补进行核对。而会计师是丁自身所认可的要道德与宗教影响的促动。神之干涉,对“生”和“死”进行计数的信念,对一个人的一言一行加以完善的笔录,这些要素诱使商人每日都见面是会计数据。

    重定向截获位级别之注册表调用。注册表重定向还好包登记表调用为定向到于注册表中是的子。

    当我们设置新程序还是 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 位的实时方法。

  简单的摸底了这些,下面说一下实际的落实步骤:

横流:工业革命时期的英国伦敦

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

于英国工业革命时代,商业扩张是占便宜发展史上之还要一个里程碑,印证了帕乔利所发明的某些方法的最主要。例如,为了衡量其于金融市场的净利润与损失,纺织品制造业发挥了进一步的促进作用。在19世纪,铁路企业中的未正当和欺骗行为也标准商业活动提供了额外动机。

      获得操作Key值的句柄

而这种监管案例并无是会计专业在19世纪发展之典型形象。在苏格兰,律师为商贩提供会计服务之同时会计专业人才也足以引入,因为商们想确保好的账面是井然有序的。

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

有限责任公司的产出叫对企业账户的需要不断增多,在1854年,大约50名叫格拉斯哥先生向维多利亚女皇提议制定《皇家宪章》(Royal
Charter)

      获取访问的Key值

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

流淌:英格兰和威尔士特许会计师协会(ICAEW)

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

1880年,一些业内集团通过做建立了英格兰同威尔士特许会计师协会(ICAEW)。最初,该协会有600叫登记在册的会员,并引入了试验机制。国际贸易、道路桥梁和铁路建设等工程工作和纺织品制造的升华还要提出了金融监管和审计的渴求。

  【注:由于我们在次中之所以了DllImport,所以只要引入命名空间:System.Runtime.InteropServices】

  下面请圈代码示例

流动:美国登记会计师协会(AICPA)

 

而,美国起了美国注册会计师协会(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
     }
 }

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

  

Get64BitRegistryKey函数的老三只参数分别表示:主键名(如:HKEY_LOCAL_MACHINE等),子键名,Key名,返回的是Key的Value(64个系统注册表的键值),通过者的道就是了好兑现用32次访问64各项系统注册表(即:64各程序所走访的注册表位置)。

这就是说以中原我们经常说之“会”“计”二字而是怎得来之啊?,对于我国会计称谓的成因、有各种不同的说教,有同种意见看在禹夏时代,大禹王曾于江南茅山开过一样不行诸侯会议,考评诸侯之业绩。这次计功大会刚刚完结,大禹王便死了。当时,诸侯们做了热闹的葬礼,把他的遗骸安葬于茅山上。为了纪念大禹和外掌管召开的这次会议,经公爵商定,把茅山更名为“会稽山”。而以此“会稽”便是今日“会计”的来源于。接下来还要有人发展了当下等同风传,他们拿非常禹王召开的这次会,说成是“我国历史上先是糟糕主计会议”。

流动:大禹王(公元前2070年到公元前2025年)铸像

有人非同意这种说法,他们是为此有限按照最早记载有“会计”二字之旧书来否认上述传说的。这半本书一样仍被作《周礼》,一本为作《孟子》。他们看是因为《周礼》和《孟子》都是战国时代的创作,故“会计”二字的发源当以战国时代。

其实,第一种植说法证据不足,其结论未休过于轻率;而第二栽说法又过分拘谨,以至忽视了一个之谜底,从而使自己之论证处在自相矛盾的光景里。因为她们于肯定《孟子》成书于战国时代的以,也认同《孟子》中所记载的孔子关于:“会计,当而已矣”的谈话。然而孔夫子出生在寒暑,而休是在战国,既然承认孔子的同一词名言,那么按道理讲,“会计”命名的来源于当在春秋,而休以战国。

事实上“会计”二字的成因和命名的根源发生给西周时代,它的有更着一个悠远而同时大诙谐之经过。

在西周先所下的仿被,尚未意识开会的“会”字,也不论“会计”二配。当时人们表达“开会”、“集会”、“相会”之类的意思用底是“合”字;反映事物数量之加用之是“合”字。由于“合”字之用处较多,在动用过程遭到人们更是感到不便利,而且也更为感觉用“合”字来发表意思很无适于、妥当。这样,大约到西周中后期,人们就因“开会”及“会计”这有限个方面的涵义逐步以搜寻创造新的字形,最后到底要这第二者的涵义从“合”字中分离出去。这个让创造出的初字形便是金文中的“会”。

会计中之“计”字是出于“十”和“言”这有限单母体字组合要变成的,“计”字的意思包含于“言”和“十”之中。相传在远古时代,人们平常将部落所在地称为中央,把部落的方圆区别吗四方,即今所讲的东西南北四方,而中央及四方组合在一起,便成了“十”字的形体。那时候,每逢出猎,部落里的首脑便随四方分派猎手。分四路出去,而后又按照这四部返回部落。按照规定,各路出猎归来必须如实告知捕获猎物的数额,最后由部落首受汇总计算,求得一个总数,以便考虑所取得猎物在部落范围外之分配问题。这种零星计算四方收获猎物的举止,便做了“计”字一方面的涵义。

以远古时代,当文字与书工具没有发明的时光,各路出猎者向部落首领报告猎物数目是为此口头语言加以表达的。不同品类之猎物各是稍微,总共是稍稍,都要求对、真实地表达出来,不可能隐瞒和虚报。这种科学而不论隐徇的口头计算和晓就是又结合了“计”字之一派涵义。这样,“言”与“十”合成旅就是做了“计”字之躯壳,而“言”与“十”这简单者的涵义合一,便要“计”字有对进行计算的意。

东汉不时,我国古代老牌的仿家许慎于《说文解字》这部著作中针对“会计”二许又自字义上作出详解,其中更是强调“计”字中涵盖对计算的完全。清代底亲笔训诂学家段玉裁,也当他的《说文解字注》一书写被针对“会“字之整合作了详尽的证实。同时,清代数学家焦循对西周经常人们对于“会计”概念的认指出:“零星算的邪计,总合算的为会。”这是对西周时代“会计”概念的正确总结。

“人工智能”时代的会计师技术

以20世纪末,各行各业对计算机技术的乘日益加深,到今天,在海内外限量外,已经面世了大量之正儿八经会计协会。

国际中间的相互依赖盛于以往,这导致诸如“四充分会计师事务所”等根本企业参与者的面世,在当今的世界被,无论是经济增长要输给,都要会计师提供财务专业知识和快洞察以搜集、分析数据并告之客户。

当下习俗的先生处理措施,都是要会计人员采用“目视辨别+手工操作”的办法来好票据信息之录入,然后还要根据分录的异对应合规票据进行分类汇算,效率并无是可怜高,而且极端容易计算出错。但随着当前“人工智能”技术的逐步成熟以及AI热潮席卷天下,这种情景,将会晤油然而生颠覆式的变动,比如像国内的等同磨蹭号称“芸豆会计”的智能财务软件,利用自主研发的OCR识别技术(OCR即光学字符识别技术,是依赖用扫描仪或数码相机,检查纸上打印的字符,然后通过辨认软件用图像中之亲笔转换成文本格式的长河。)能拿原来要会计手工录入的发票,通过放入扫描仪进行扫描,就不过自动识别并提取票面上会计所急需的发票信息,然后自行导入到“芸豆会计”线达之网中,系统虽然根据发票底档次、类型自动分录归类,并活动核算。这样不仅大幅提高了拍卖票据的频率,而且容错率很高,还能避开出错后再次检查产生的时资产,可谓大大解放了记账的为主录入需求。据了解“芸豆会计”目前就支持5万余栽票据的扫描识别,基本包含了出纳日常要处理的有发票种类。

好望像“芸豆会计”这好像使用新兴技术之实在行使,已经起来逐步推进会计行业技术之变革。

还有即使是“云会计”概念的破茧而出。所谓云会计,其实就是是先生账务处理的“云计算化”。使用复式记账法为原则,以干项目数据库也根基,一般都不外乎:总帐模块、应收应付模块、银行现金账模块等。传统会计只能以同一高授权的处理器或局域网被才会操作使用。会计“云计算”的不同之处在于它们是在线会计软件,可以由此互联网随时随地接入系统利用,之前提过的“芸豆会计”软件也是这种操作模式.

先生“云计算”的要紧优势在于:

1、可降企业财务会计、管理会计的信息化运作基金,企业方可因需要,从每个服务供应商那里单方面地打计算能力。

2、可以兑现企业财务会计、管理会计的信移动办公,会计核算可以随时随地的进行,会计资料可随时随地查看。

3、加强了合作社信息化运行方式,使得企业财务会计部门与其余生产、销售机构期间的无缝对接。

4、解放了大气之人力,使得财务人员不用拿精力、时间投放在实际的财务账目,而是转化能吧公司带来价值创造的成本运营移动中错过。

当,每种事物在极尽便利的而,也会出一定之局限性,像是会计师“云计算”在上扬遭遇为会见逢可预见的劣势:

1、运营商提供的会计“云计算”平台建设同服务还无周到,不可知满足企业之求。目前运营商所能够提供的出品或劳务效果单一,受到各种技术之界定,所能提供的活以及劳动以效力及、应用上远不克满足用户的急需。

2、信息安全之相信问题。据检察显示,当前生87%底店对“云计算”担心无比多之即是信息安全题材,信息安全问题得不顶保障,绝大多数铺用户是匪见面接受这同样出品或服务的,因为会计信息大多涉及企业之中心,一旦中泄露后果不堪设想。

3、云终端信息处理能力的峰值受限。众多商家还见面将自己之音信传递到云终端,在这么巨大之音讯前,服务器的运作和处理能力用化重大的考验,频繁之数存取和海量的数据交换会造成数据延时和网堵塞。网络传输的负载能力变成叙计算以叫会计信息化的一个瓶颈。

尽管会计“云计算”的利弊都很强烈,但她还是是未来不可逆转的不可开交趋势,不仅多寒国内外重量级分析机构承认,而且多国家也渐渐地成立了出纳“云计算”的进化战略。

终论

通过以上的例证我们视,古往今来,会计这个有重历史沉淀的本行,一直就历史的轮子连转变、演进……并逐年形成了扳平套适应自己提高的系统及途径,最要命之特性就是是其具有最强之适应性,每一样破的史变革与技能颠覆,都能够成它自身发展之营养。

咱俩可信赖在未来新时代网络技术之背景下,“会计”必会迸发出比较以往愈加有生机的生机;在江山和商店的共同推动下用获创新的健全腾飞,市场为用释放出还广的利用需求。届时会计行业也罢势必会更找到打开新时代大门的钥匙。

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