C# 系统采用之注冊表使用具体表达澳门美高梅手机网站

       
在平日做项目时,我们有时候会遇到注冊表的操作,比如前边我们须要博得IE浏览器地址栏的信息、获取”我的微处理器”地址栏输入的目录音讯、USB最近拔取音讯等.注冊表项是注冊表的基本协会单位,它概括子表项和值条目.简言之,注冊表项相当于注冊表里的目录.它们存储总括机安装程序的信息,如颜色设置、屏幕尺寸、历史记录等.
       
举个曾经拔取注冊表最多的样例:当大家玩魔兽或dota时,总不可能不打开”执行”->输入”regedit”打开注冊表,在HKEY_CURRENT_USER->Software->Blizzard
Entertainment->Warcraft
III->Video中改变reswidth(屏幕宽)和resheight(屏幕高).使其屏幕分辩率与游乐一样全屏展现.
        以下就实际解释注冊表的使用.
一.注冊表的布局
       
注冊表(registry)是Windows系统中一个首要的数据库,它用于存储有关应用程序、用户和体系信息.注冊表的布局就像一颗树.树的一级节点(hive)无法参加、改动和删除.
        例如以下图所观望的是Windows注冊表的五星级节点:
澳门美高梅手机网站 1
        在C#中对注冊表进行操作,须要引用命名空间:using Microsoft.Win32.
        RegistryKey类代表注冊表中的一级结点,此类是注冊表的封装.
        Registry类提供表示Windows注冊表中的根项RegistryKey对象,并提供訪问项/值的static方法.平日拔取的Registry对象的头等节点(蜂窝,hive)的属性例如以下表所看到的:

不以为奇我们把团队建设概念为以下五个周期,一个地道的集体,如同一个机体,是有性命与意义的。有人命的上马,就会有生命的终结。团队也是如些,没有一个集团能保全亘古不衰。团队的迈入大致会经历如下六个阶段:组建期、磨合期、稳定期、成效期、衰退期(终结期)。

Registry属性 注冊表顶级节点 说明
ClassessRoot HKEY_CLASSES_ROOT 定义文档的类型\类以及与类型关联的信息以及COM组件的配置数据
CurrentConfig HKEY_CURRENT_CONFIG 包括有关非用户特定的硬件的配置信息
CurrentUser HKEY_CURRENT_USER 包括当前登录到Windows的用户的配置信息
LocalMachine HKEY_LOCAL_MACHINE 包括与计算机相关的配置信息,无论用户是否登录
Users HKEY_USERS 包括有关默认用户配置的信息

一、组建期

本条时候一般在档次立项前后就要截至,这里的组建是指项目中着力职员的组装,人士的抉择上,我通常倚重多少个特性:

1、经验-这么些就无须多表达了,不管是支付经历如故类似项目标实践经验,有经历的职工顶得上几个毛头小伙。

对于你不熟谙的员工,咋样高效识别他的经历吗?

村办觉得,一是干活圈子的时限(注意不是仅仅的劳作时限),倘使他在一个世界内行事抢先三年以上应该是个行家,五年以上就应当是个高手了(除非此人没上进心每一日在混日子),前提是那多少个员工是一直在从业有关领域的开支工作,所以各位新人在挑选自己成长道路的时候,倘使第一年你做php,第二年你转做java,第三年又搞.net,这您的成人有限,顶多也就是一个代码工人。经验那一个东西很神奇,即便项目开支是用不同的语言,只要考虑相近(譬如面向对象或面向过程),我意识大部分在一个领域内随地开发的职工能更进一步胜任新的支出架构甚至语言的就学。

2、学习能力,这里的读书能力分为主观和成立五个方面的,主观方面即对文化和自己综合素质进步的分明渴望,那一点在面试时问问她近期看了何等书,他深谙的小圈子内有怎样新的开发技术有没有和好demo实验过,就能清楚个八九不离十。客观方面就和对新知识的就学的承受速度和他个人对时间怎么管理这多少个关于联,你可以问问他的中长期规划,然后理解一下她的近年上学计划和学习收获,这么些不仅局限于专业技能,生活目的仍然证书学习和收获都是可以用作考量的按照,我们得以把这大概的知道为“上进心+持续学习的能力”,这中间,身体因素也是亟需考虑的,尼父的得意门生颜回也爱学习,不过短时间营养不良加上不爱操练,结果学业未大成就英年早逝了,导致孔先生长叹不已。认识一个人是个短期的进程,但对此项目管理的话,学习能力低下的员工,难以承受突发任务或不熟谙的挑衅性任务。想想在中小集团中,面对周边强势的客户群体,和这多少个无数从改变中发出的要求和奇特的想法,即便没有频频学习的能力,去打听客户询问工作,去不断地增长代码的安宁和重构,抱怨就会进一步多,开发职员就永远不会去想私下的由来和事理。

3、交流能力,开发人士所在的行事环境要求安静、注意力低度集中,由此普通的互换交换相比较少,有效交换和人际关系就会变成广大的协会短板。我有个同事,性格相比C,工作时负责,话很少,而且只服工作像她一致字斟句酌和力量不错的人,对友好对旁人都要求严刻,很多I型或S型的同事都与他交换不便,抱怨那么些力量可以的同事指责太多。我们讲团队必须有友好的风骨,假若这类员工恰好和你团队中多数职工的性情相比较冲突,那您将要考虑将公司协调工作纳入到你的一般性重点工作中了,要时时关注这个抱怨会给集体带来的负面影响。此外一种情景是,假设多少个为主员工的关联能力都低下,这恭喜你,你需要抓紧时间在磨合期选取一雨后春笋团队建设工作,将我们的行事风格及联系渠道固定下来,并且在配备时,尽量提供性格特征相近的职工在一齐干活的可能。

        注冊表中时时使用的数据类型有:
        REG_SZ字符串数据的首要类型,用于存储固定长度的字符串或其他短文本值.大家在实际程序中常见只是用如此的数据类型,倘诺要保留布尔值时,将它意味着成0或1.
        REG_BINARY用于存储二进制数据.
       
REG_EXPAND_SZ可扩展的字符串值,可以保存在执行时才解析的体系变量.
       
REG_MULTI_SZ以数组的格式保存三个文本字符串,每一个字符串”元素”皆以null字符截至.
二.注冊表平时用法
          1.成立注冊表键
       
第一先确定在哪些顶尖结点下创立键,然后调用CreateSubKey()方法创制.

二、磨合期

鉴于协会成员互相的不太精通,会因个别不同的目的及能力、见解而对某个事项的视角不同而发出争论,这种工作在协会磨合期是常会爆发的事务,也许成员之内本无他意只是个体平时的行事措施、表述形式各异而已。在磨合期间,团队首席执行官要在社团中,连忙树立起协调的威信以消遣争执,如遇事情要拓展即时的关联与反映,尽量将成员领到同一个手续上。

用作团队长官,首先要领悟自己的风格,精晓自己的性格,然后对组员举办辨析,精通一下协调社团是个怎样风格,这多少个磨合期,实际上就是您个人风格与集体完全性格举办磨合的经过。

上节自家讲了DISC性格分析法,下边我就以一个两人社团来开展辨析吧(项目总监一人、开发人员五人、美工一人、测试兼文档一人)

经过你的测试后,发现C型因子相比较多的有五个人,I型的1人,S型的2人,你自己是C型的,那么团队性格模型如下:

 澳门美高梅手机网站 2

可以寓目,整个团队显示一个高C的倾向,由此这多少个公司需要专注在关系中注意符合高C的特色,即秩序性和规则性,互换渠道不得以太自由,必须有定点的维系时间和规范的交换记录,同时对I和S的队员要提供face
to
face的时机,定期开展互换。当然这一个团伙还会有局部题目,即很可能工作过分沉溺于细节,而忽视了重要对象,这点我们会在末端的花色对象识其余章节中加以介绍。

简单易行的说,高D的公司有着心理,易被点燃,但缺少民主性,倘诺项目重要目标的辨别暴发了错误,就很难靠他们友善纠正,他们也容易陷入毫无意义的交互指责中。另一方面,高D的集体,合作精神较缺少,也正如大意流程管控,在早晚水准上会造成公司在系统运维困难和花色成本上的文化丢失的面貌。如果有时机,我会把自己对成品运维方面的篇章陆续宣布出来。高D的社团适合中短时间项目,适合愿景明确、项目根本影响因素少的连串,也更符合长期性质的团队,在这类项目上,他们强调结果的态势会让集团为之惊艳。

高I的团协会,必然是一个充斥欢声笑语的团社团,关键看决策者能否正确的指引集体开展有效能的劳作,由此,团队中成员的责任心要在逐一阶段加以指示,并和绩效挂钩,同时对I型团队来说,来自于其中和客户方的终将要及时的公开并放大,对于项目中遭遇的困难,作为官员要即刻加以关注,即便是你不为他们缓解哪些,这种关注也是必须的。总而言之一句话,高I的集体要适时保持住压力感和村办关注,你偶尔会以为温馨成了一个话痨,因为你可能会平时和他们去交换,领导者也要留心应慷慨地赋予他们获取成就后的讴歌。

高S的社团,作为集团管理者,是相比轻松的,特别是大旨员工为S型的话,但您需要知道他们的下线,诸如”我每一周要休息一天、我早晨要玩会dota、我多年来在谈朋友所以晌午希望按时走”这一个话,S型可爱的员工是世代不会和您说的,但你如若没有领会,你会让他们的心怀一落千丈,最直接的后果就是她写的代码、做出的测试报告,会让你认为判若六个人,
他们是被动抵抗的人。当然他们也是很容易被鼓舞的,一个赞美,一个信任的眼力,一个投机的问讯,都能让他俩容光焕发,说真的,我喜欢S型的基本员工。我深信您也尚无理由不希罕。

 高C的团队,工作严刻、认真、负责,承诺的事体会尽全力去做,我看见大多数经理期望高C的职工做出超过她能力值以外的承诺,你可以这样做,但你无法不给他有效的帮带和骨子里的指出,高C的员工工作喜欢计划性和条理性,讨厌被打断,讨厌变更,他们比另外D、I、S的员工更亟待一个佳绩和一个期待,因而,团队只要没有明晰的计划和一个个可以完成的现实性目的,他们很容易陷于怀疑和崩溃中,高C的职工是一把锋利的刀,但并非拿他们来开山架桥,好刀要用他们擅长的职责上并给她们以显著的阶段性目的,而且专注要让他俩不宜被打扰。高C的团协会交换上本身在案例中也讲过,必须有正式的时限的关联时间和笔录,对团队内其他体系的员工负责人也要经常作face
to face的维系,以防高C的沉郁让其余员工在不经意间受到了麻烦。

 

如上只是不同性格团队的拍卖原则,也有成百上千综合性能的集团,那就需要社团总老板花费更多的生机去平衡不同组员工作条件和联系渠道,作为项目主管,应该勇敢承受起绝大部分的牵连职责和集体建设任务,做这一个是有回报的,你的团队成员可以更加在意的做好协调的事,而无需为不必要的人际关系和联络障碍所困扰,在我看来,80、90后很多时候心智都不成熟,承担压力的力量大规模不强。当您在携带你的集体在奔跑时,你手上实际上拿着的是一面盾牌,为你身后的分子们挡下来自客户方、公司内部、团队内部的各个与品类铁三角无关的打扰,看过《美国队长》吗,对,作为项目老董,你要有牺牲精神,你要为成员们作好勇于承担、重视承诺的楷模,你要清楚的甄别目标和各位的天职,所以说,项目老总非大智大勇者是很难做到perfect。

 

public RegistryKey CreateSubKey(
    string subkey   //要创建或打开的子项的名称或路径
 )

三、稳定期

分子通过一段时间的磨合,团队成员相互有了更深的打听与配合,团队的劳作措施达成了共识,正常的干活秩序得以建立。这么些时期,作为集体的领导人士要留意,不可因而而让团队进入“和平”的死胡同。要多指点成员的办事革新,鼓励成员建立一个成立性的劳作格局,在社团集体智慧和技能的根基上构建对团队的忠贞的同时,发挥出团结的独有的一头。为集体的祥和进步提出新思路、新典型,稳中求发展、革新、立意。

 

        比如在HKEY_CURRENT_USER下成立键Eastmount和HKEY_CURRENT_USER\Software\Eastmount\test2.中等我们最平日应用的是在\Software那几个键下创造程序产品键,保存一些顺序的安排在注冊表中.假诺Software中没有Eastmount键,则会先创设这么些键及其子键.假诺存在就不会重写.

四、成效期

协会的进化经历了前方的多个队段,成员之内能自愿地完成快捷与协作,互相的认同感与对集体的忠诚度、依赖性也很强,此时也是集团出职能的时代。团队成员能主动地、有创制性地、有功能地共同展开工作。作为协会的负责人,此时应允许并鼓励成员个人和小组以自已的主意展开工作,让其不仅觉到工作的形成,更让其感受到团体对其的信任度,让其个人的市值可以贯彻。团队价值与团伙成员个人的市值完美的结合。

 

//创建键
//在HKEY_CURRENT_USER下创建Eastmount键
RegistryKey test1 = Registry.CurrentUser.CreateSubKey("Eastmount");
//创建键结构 HKEY_CURRENT_USER\Software\Eastmount\test2
RegistryKey test2 = Registry.CurrentUser.CreateSubKey(@"Software\Eastmount\test2");

五、衰退期

一个团伙的目标与价值或者会随着某项工作职责的到位而终结,团队会由此而解散,截至使命。

 

待续…… 

        注意:C#字符串中反斜杠是转义字符,前面加前缀@时,告诉字符串按字面值处理而不开展转义.@”Software\Eastmount\test2″=”Software\\Eastmount\\test2″.
        执行结果例如以下:
澳门美高梅手机网站 3 澳门美高梅手机网站 4
        2.打开子键

public RegistryKey OpenSubKey(
    string name,     //要打开的子项名称或路径
    bool writable    //假设须要项的写訪问权限=true
)

        3.刨除注冊表的键       删除注冊表的键有三个法子: DeleteSubKey()和DeleteSubKeyTree().DeleteSubKey()删除不分包子键的键及其一切值,DeleteSubKeyTree()不仅删除键及其值,还删除键下全体子键(慎用该措施).

//函数原型
public void DeleteSubKey(
    string subkey    //要删除的子项名称
)
//删除HKEY_CURRENT_USER下创建Eastmount键
Registry.CurrentUser.DeleteSubKey("Eastmount");
//删除创建的子键test2
Registry.CurrentUser.DeleteSubKey(@"Software\Eastmount\test2");

        假使键不设有,会有充裕错误指示,最好使用try..catch..相当处理.它只删除Software\Eastmount中子项test2而保留Eastmount项.结果例如以下图所观看的:

澳门美高梅手机网站 5

        
注意:假使使用Registry.CurrentUser.DeleteSubKey(@”Software\Eastmount”);它会提醒错误”注冊表具有子项,而且此方法不补助递归移除”.倘诺使用Registry.CurrentUser.DeleteSubKeyTree(@”Software\Eastmount”)则会删除Eastmount和子项test2.
        4.收获键值
       
Registry.GetValue()检索与指定的注冊表项中的指定名称关联的值.如果keyName指定的子项不设有,则赶回null;否则重返与valueName关联的值;假设未找到valueName则赶回defaultValue.

public static Object GetValue(
    string keyName,        //以注冊表顶级节点开头的键的完整路径
    string valueName,      //名称/值的名称
    Object defaultValue    //当valueName不存在时返回的值
)

        比如获取HKEY_CURRENT_USER\Environment中的path键值.

//获取Environment中路径
string strPath;
strPath = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Environment",
    "path", "Return this default if path does not exist");
MessageBox.Show(strPath);

澳门美高梅手机网站 6
        RegistryKey.GetValue方法可以寻找与指定名称关联的值.函数原型public
object GetValue(string
name).当中參数name表示键的名称.如程序中本人获取统计机地址栏输入的音讯.

//定义注冊表顶级结点 命名空间Microsoft.Win32
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey
    ("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\TypedPaths", true);
//推断键是否存在
if (key != null)
{
    //检索包括此项关联的全部值名称 即url1 url2 url3
    string[] names = key.GetValueNames();
    foreach (string str in names)
    {
        //获取url中相关联的值
        listBox1.Items.Add(key.GetValue(str).ToString());
        Num++;
    }
    //显示获取文件总数
    this.textBox1.Text = Num + "个文件";
}

       
执行结果例如以下图所看到的.事实上还可以够赢得分外多东西,USB使用音信、浏览器选用新闻、软件路径等等.
澳门美高梅手机网站 7
        5.创办和安装键值
        Registry.SetValue()方法设置指定的注冊表项的指定名称/值对,倘诺指定的项不存在,则开创该项.

//函数原型
public static void SetValue(
    string keyName,        //以注冊表顶级节点开头的键的完整路径
    string valueName,      //名称/值对的名称
    Object value           //要存储的值
)
//设置键值Version=1.25
Registry.SetValue(@"HKEY_CURRENT_USER\Software\YourSoftware", "Version", "1.25");

        注意:每一趟调用SetValue方法时,它都开辟一个注冊表项,设置其值,然后关门该项.假使须要大批量变动提出使用RegistryKey.SetValue方法.public
object SetValue(string name,object value).
       
PS:举个简单的样例通过设置本身的微处理器-{20D04FE0-3AEA-1069-A2D8-08002B30309D}为1,就足以隐藏桌面我的总计机图标.改动为0又可以显得,你知不知道把目录插手”.{20D04FE0-3AEA-1069-A2D8-08002B30309D}”后就改成了”我的微处理器”,可以用来隐藏文件.

RegistryKey rgK = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel");
rgK.SetValue("{20D04FE0-3AEA-1069-A2D8-08002B30309D}",1);

       
最终希望著作对我们具有协理,作品首假使温馨这段时间对C#调用注冊表消息的下结论,一方面讲述了注冊表相关的基础知识,还有一方面通过代码结合图片格式讲述简单利用注冊表.同一时候假若作品中有哪些啰嗦或不足之处,还请海涵.
        著作參考自己的花色、MSDN和利用C#操作注冊表
(By:Eastmount 2014-5-11 夜9点半
原创CSDNhttp://blog.csdn.net/eastmount/)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website