L
lha
Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个能在ASP中调用的COM ,该COM能将注册表中的
HKEY_LOCAL_MACHINE/Software/ASPCOM 下的两个字符串值读出
UserName
Password
其中,ASPCOM的键原先就已经建好, UserName 与 Password
两项的值也已填入。
部分代码如下:
....
procedure TmyADOConn.GetLoginInfo;
var Reg : TRegistry;
tmpStr : String;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('/Software/ASPCOM', False) then
begin
FUserName := Reg.ReadString('UserName');
FPassword := Reg.ReadString('Password');
tmpStr := Format('UserName : %s , Password : %s <BR>',[FUserName,FPassword]);
Response.Write(tmpStr);
end
else
Response.Write('Read Registe ERROR!');
Reg.CloseKey;
finally
Reg.Free;
end;
end;
....
不知为何, 这段代码执行的结果都是输出 'Read Registe ERROR!'
也就是说 OpenKey出错了
可是 同样的代码(将Response.Write改为ShowMessage)在普通的Application中执行
都能得到正确的 UserName与Password
也就是说 OpenKey正确。
这是怎么回事呀? 是COM与Application的不同之处?
还有, 请问用Delphi写ASP COM还要注意什么问题? (分数可另给)
HKEY_LOCAL_MACHINE/Software/ASPCOM 下的两个字符串值读出
UserName
Password
其中,ASPCOM的键原先就已经建好, UserName 与 Password
两项的值也已填入。
部分代码如下:
....
procedure TmyADOConn.GetLoginInfo;
var Reg : TRegistry;
tmpStr : String;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('/Software/ASPCOM', False) then
begin
FUserName := Reg.ReadString('UserName');
FPassword := Reg.ReadString('Password');
tmpStr := Format('UserName : %s , Password : %s <BR>',[FUserName,FPassword]);
Response.Write(tmpStr);
end
else
Response.Write('Read Registe ERROR!');
Reg.CloseKey;
finally
Reg.Free;
end;
end;
....
不知为何, 这段代码执行的结果都是输出 'Read Registe ERROR!'
也就是说 OpenKey出错了
可是 同样的代码(将Response.Write改为ShowMessage)在普通的Application中执行
都能得到正确的 UserName与Password
也就是说 OpenKey正确。
这是怎么回事呀? 是COM与Application的不同之处?
还有, 请问用Delphi写ASP COM还要注意什么问题? (分数可另给)