请问各位怎么读取注册表里的字符串/?(50分)

Q

qqli

Unregistered / Unconfirmed
GUEST, unregistred user!
如HKEY_LOCAL_MACHINE、SOFTWARE/Microsoft/Windows/CurrentVersion/Run里的字符串值<br>当它存在时返回为真(ture)反之为假(fals)![:)]
 
不是开过一贴了吗?用ReadString
 
var<br>&nbsp; Reg:TRegistry;<br>begin<br>&nbsp; Reg:=TRegistry.Create;<br>&nbsp; try<br>&nbsp; &nbsp; Reg.RootKey:=HKEY_LOCAL_MACHINE;<br>&nbsp; &nbsp; Reg.OpenKey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',False);<br>&nbsp; &nbsp; Reg.ReadString(....);<br>&nbsp; finally<br>&nbsp; &nbsp; Reg.CloseKey;<br>&nbsp; &nbsp; Reg.Free; &nbsp;<br>&nbsp; end;<br>end;
 
与zhihuali意见一致
 
//--当它存在时返回为真(ture)反之为假(fals)![:)]<br>keyExists
 
用KeyExists判断子键是否存在、ValueExists判断键值是否存在[:)]。<br>
 
这是我写的读写注册表的函数,希望对你有所帮助<br><br>procedure SaveReg(root,key, value: String);<br>var reg:tRegistry;<br>begin<br>&nbsp; Reg := TRegistry.Create;<br>&nbsp; //Result:=true;<br>&nbsp; if ((key='') or (value='') or (root='')) then<br>&nbsp; begin<br>&nbsp; end<br>&nbsp; else<br>&nbsp; begin<br>&nbsp; &nbsp;try<br>&nbsp; &nbsp; Reg.RootKey := HKEY_LOCAL_MACHINE;<br>&nbsp; &nbsp; if Reg.OpenKey(root, True) then<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; Reg.WriteString(key,value);<br>&nbsp; &nbsp; &nbsp; Reg.CloseKey;<br>&nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp;finally<br>&nbsp; &nbsp; &nbsp;Reg.Free;<br>&nbsp; &nbsp; //inherited;<br>&nbsp; &nbsp;end; &nbsp; //end try<br>&nbsp; end; //end if<br>end;<br><br>function ReadReg(root,key:string):string ;<br>var<br>&nbsp; &nbsp; reg:TRegistry ;<br>begin<br><br>&nbsp; &nbsp; if ((root='') or (key='')) then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; Result :='';<br>&nbsp; &nbsp; end<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; Reg:=TRegistry.Create;<br>&nbsp; &nbsp; &nbsp; &nbsp; Reg.RootKey:=HKEY_LOCAL_MACHINE;<br>&nbsp; &nbsp; &nbsp; &nbsp; {False because we do not want to create it if it doesn抰 exist}<br>&nbsp; &nbsp; &nbsp; &nbsp; if Reg.OpenKey(root,False) then<br>&nbsp; &nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; Result :=Reg.ReadString(key);<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Reg.Free;<br>&nbsp; &nbsp; &nbsp; &nbsp; end<br>&nbsp; &nbsp; &nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Result :='';<br>&nbsp; &nbsp; &nbsp; &nbsp; end;<br>&nbsp; &nbsp; end;<br><br>end;<br>
 
var<br>reg:tregistry;<br>begin<br>reg:=tregistry.create();<br>reg.rootkey:=hkey_local_machine;<br>if openkey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',false) then<br>readstring(reg);<br>end;
 
1、 首先要在use加入单元Registry;<br>2、 在按钮中加如下的代码:<br><br>procedure TmainUnit.Button2Click(Sender: TObject);<br>var<br>Registry:tRegistry; &nbsp; { 变量名可以任意定,如上定义容易理解些。}<br>begin<br>Registry:=tRegistry.Create; &nbsp;{首先创建一个Registry对象}<br>Registry.RootKey:=HKEY_LOCAL_MACHINE; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{设置根键}<br>registry.OpenKey('SOFTWARE/ORACLE/HOME0',false); &nbsp; {打开子键。注意:对不同的应用程序,后三项各不相同}<br>label1.Caption:= registry.ReadString('ORACLE_BUNDLE_NAME'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{读取串值}<br>end;<br>
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
796
import
I
顶部