在DELPHI中如何读写注册表如何取得主机名?(100分)

  • 主题发起人 主题发起人 sky_knigt
  • 开始时间 开始时间
S

sky_knigt

Unregistered / Unconfirmed
GUEST, unregistred user!
我对DELPHI有一定的了解知道用REGITRY操作注册表但不是很详细!请大侠们帮我详细的解释一下注册表操作的常用方法,如取主机名,软件注册等问题!谢谢[8D][8D]
代码:
 
procedure TForm1.Button1Click(Sender: TO b j e c t ) ;
v a r
ComputerName: PChar;
size: DW o r d ;
b e g i n
G e t M e m ( C o m p u t e r N a m e , 2 5 5 ) ;
s i z e : = 2 5 5 ;
// 获取计算机名称
if GetComputerName(ComputerName,size)=False then
b e g i n
M e s s a g e B o x ( H a n d l e , '获取计算机名称失败。' , '错误' , M B _ O K + M B _ I C O N E R R O R ) ;
F r e e M e m ( C o m p u t e r N a m e ) ;
E x i t ;
e n d ;
E d i t 1 . Te x t : = C o m p u t e r N a m e ;
F r e e M e m ( C o m p u t e r N a m e ) ;
e n d ;
 
大侠谢谢指导!我相信你的方法是正确的但我编译没有通过啊!你编译一下试试!
我在6.0下面在VAR后就没有通过!
 
读取计算机名称:
function TForm1.read_computername:string;
var
computername:string;
Areg:Tregistry;
begin
Areg:=TRegistry.Create;
with Areg do
begin
bootreg:=HKEY_LOCAL_MACHINE;
OpenKey('SYSTEM/ControlSet001/Control/ComputerName/ComputerName',false);
computername:=ReadString('ComputerName');
closekey;
destroy;
end;
result:=computername;
end;
 
不好意思打错了,应该是
rootkey:=HKEY_LOCAL_MACHINE;
 
应该如下
读取计算机名称:
function TForm1.read_computername:string;
var
Areg:Tregistry;
begin
Result:='';
Areg:=TRegistry.Create;
with Areg do
begin
Try
bootKey:=HKEY_LOCAL_MACHINE;
If OpenKey('SYSTEM/ControlSet001/Control/ComputerName/ComputerName',false) Then
Begin
Try
result:=:=ReadString('ComputerName');
Except
End;
End;
closekey;
Finally
Free;//destroy;
end;
End;
end;

 
这么麻烦啊,用API汉书不是更好吗
//获得计算机名
function GetCompName:String;
var Buff:Array[0..64]of Char;
Len:Cardinal;
begin
Len:=64;
GetComputerName(@Buff,Len);
Buff[Len]:=#0;
Result:=Buff;
end;
 
多人接受答案了。
 
唉,谢谢大虾指导,这口气显然缺底气。这类问题自己查查资料便很容易搞定。
身价没有3k啊,入门者吧。
 
兄弟啊!我知道查资料很容易搞定我也知道对注册表操作的函数是什么啊!在查了资料后
再问问高手这也是错啊?这就证明我没有3K的水平?!我倒!搞IT的是靠手吃饭的
不是耍嘴皮子!
 
后退
顶部