Delphi写的ASP组件不能读注册表吗?(100分)

  • 主题发起人 delphiinfomail
  • 开始时间
D

delphiinfomail

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi写了一个简单的组件来读注册表中的键值,可是怎么都不能读出。有谁知道什么原因吗?
unit Unit1;

interface

uses
ComObj,windows, ActiveX, AspTlb, AspReg_TLB, StdVcl, registry;

type
TAspRegister = class(TASPObject, IAspRegister)
private
s: string;
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
function Get_Read: WideString
safecall;
end;

implementation

uses ComServ;

procedure TAspRegister.OnEndPage;
begin
inherited OnEndPage;
end;

procedure TAspRegister.OnStartPage(const AScriptingContext: IUnknown);
var
Reg: TRegistry;
begin
inherited OnStartPage(AScriptingContext);
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('Software/Microsoft/Windows/CurrentVersion/Explorer', False) then
s := Reg.ReadString('Logon User Name')
else
s := 'wrong.';
finally
Reg.CloseKey;
Reg.Free;
end;

end;

function TAspRegister.Get_Read: WideString;
begin
result := s;
end;

initialization
TAutoObjectFactory.Create(ComServer, TAspRegister, Class_AspRegister,
ciMultiInstance, tmApartment);
end.

 
可能和用户权限有关系。
 
我可是使用管理员的权限,怎么还是不行呢?[:(]
 
没有人知道吗?[:(!][:(][:(]
 
抱歉,我没做过ASP组件,但我做过ISAPI。客户端的浏览器调用ISAPI的时候,如果是Win2000
系统,ISAPI就无法从注册表里读取数据,而在Win98下却可以。所以我觉得是权限的问题。
 
问一下老兄:我编写的DELPHI ASP OBJECT 为什么在ASP调用的时候出现INVALD CLASS STRING
导致组件创建失败。
 
注意:在asp页面中使用delphi生成的dll时,需要在相应的站点的属性中:目录安全性->匿名访问和

验证控制->编辑->编辑->用户名->浏览->选择administrator后(关闭),填入

administrator得密码,在"允许iis控制密码中"打对钩:选择确定按钮。
 
是用户权限不够,管理员登录和ASP组件的权限是两回事(需要设置),建议不要用regsvr32注册,而把它安装在COM+环境中,再设置相应权限就可以了。
 
权限问题,你应该在IIS中->网站属性->目录安全性中设置一个有权限的用户..
 
顶部