Vista下如何操作注册表 ( 积分: 20 )

  • 主题发起人 主题发起人 zzyun
  • 开始时间 开始时间
应该是权限的问题。据说Vistia更新了安全设置,所以,我估计在读取注册表之前,应该有一个申请权限的过程。----只是经验之谈。我早先在98下实现的对系统的操作,到了XP下就必须多加一步申请权限的过程,才能工作。
 
to:xpricher<br>我是用2K的系统编写的程序,用户是我自己创建的一个用户(有管理员的权限),VISTA的系统是超级管理员的用户。我想请教的问题是怎样申请权限。以前还没接触过要申请权限这方面的问题的。呵呵
 
Vista默认用户没有超级用户权限.不可以操作注册表的一些键的.这一点挺恶心的.<br>除非用超级用户运行否则没办法
 
我记得在安装Vista&nbsp;32Bit&nbsp;的时候它默认一个用户是超级用户的。也就是说你在安装Vista&nbsp;32Bit&nbsp;的过程中会提示你输入一个用户名系统默认这个具有超级用户的权限,同时当你安装成功启动后会出现两个用户,一个是你自己创建的,一个是超级管理员。<br>在安装Vista&nbsp;64Bit的系统时却没有这样的情况。在安装过程中会提示你输入一个用户名,安装完成启动系统后也只有一个用户就是你自己创建的用户(具有超级用户权限)。<br>to:wr960204<br>所以我不明白你所说的<br>Vista默认用户没有超级用户权限.不可以操作注册表的一些键的。<br>还请兄台明示啊。呵呵
 
guan&nbsp;zhu
 
...............和WindowsXP一眼嘎,我的程序都没有问题(现在就是VISTA
 
Vista和XP的注册表已经不一样了
 
用API,D7+Vista&nbsp;Business有效<br>function&nbsp;getcpu:PChar;stdcall;<br>var<br>&nbsp;&nbsp;reg:HKEY;<br>&nbsp;&nbsp;size:PDWORD;<br>&nbsp;&nbsp;info:PByte;<br>begin<br>&nbsp;&nbsp;GetMem(info,64);<br>&nbsp;&nbsp;GetMem(size,SizeOf(pdword));<br>&nbsp;&nbsp;size^:=64;<br>&nbsp;&nbsp;RegOpenKeyEx(HKEY_LOCAL_MACHINE,PChar('HARDWARE/DESCRIPTION/System/CentralProcessor/0'),0,KEY_ALL_ACCESS,reg);<br>&nbsp;&nbsp;RegQueryValueEx(reg,PChar('ProcessorNameString'),nil,nil,Pbyte(info),@Size);<br>&nbsp;&nbsp;Result:=PChar(info);<br>&nbsp;&nbsp;RegCloseKey(reg);<br>end;<br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;ShowMessage(getcpu);<br>end;
 
to:sy0116<br>我用的是D5+Vista&nbsp;ultimately(英文版本)<br>我用你的代码来试了一下,好象还是不可以的,出现的是一些乱码,而且每次点一次button,showmessage(getcpu)显示出来的信息都不一样的。<br>能不能将你的.exe文件传给我试一下?<br>先多谢拉。<br>zhiyun.zhu@jme.sunrex.com.cn
 
邮件已发,不知道成功没有,可以到<br>http://www.soeasy.net.cn/pickFilesAction.do?topicId=1579446&amp;uid=1352804<br>下载
 
楼主试试把你的代码中的<br>if&nbsp;Reg.OpenKey('/Hardware/Description/System/CentralProcessor/0',&nbsp;False)&nbsp;then<br>改成<br>if&nbsp;Reg.OpenKey('Hardware/Description/System/CentralProcessor/0',&nbsp;False)&nbsp;then<br>看看,我测试这样改过就可以了
 
to:sy0116<br>将<br>if&nbsp;Reg.OpenKey('/Hardware/Description/System/CentralProcessor/0',&nbsp;False)&nbsp;then<br>改成<br>if&nbsp;Reg.OpenKey('Hardware/Description/System/CentralProcessor/0',&nbsp;False)&nbsp;then<br>我试了,在我这边是行不通的。<br><br>你给我发的.exe我没收到,那个链接也不成功的还麻烦你再给我发一次的啊.<br>zzy0226@126.com<br>多谢拉。
 
to:sy0116<br>我用你的.exe文件试了一下,也是不可以的。每点一次button则showmessage每次显示的内容是不一样的,显示的也是乱码。<br>你的VISTA系统是从网上下的?
 
我的Vista是网上下的MSDN版,中文版的
 
呵呵,所以我怀疑是不是你的版本有点问题的。<br>我的版本是微软直接邮寄过来的,而且在不断的更新中的。<br>朋友:能不能留个联系方式,今后好交流哦。呵呵<br>我的EMAIL告诉你了啊
 
email:sy0116@tom.com<br>qq:77266693
 
Vista的正式版本到底是什么啊?我的Vista暂时可以用Windows&nbsp;Update升级,搂主是何方神圣啊,微软竟然给你寄牒
 
Vista使用了全新的安全机制,如果在UAC开启的情况下,你对注册表的操作实际上被重新定向了,你可以将UAC关闭一下,应该正常.如果你实在要在UAC开启的情况下使用,可以下载一份INNOSETUP的源代码看看!
 
楼上这位有理,我是关闭UAC的,开启UAC还没试过
 
还没用上Vista,测试不了!
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
812
SUNSTONE的Delphi笔记
S
S
回复
0
查看
718
SUNSTONE的Delphi笔记
S
后退
顶部