我做了一个Asp组件,并定义了读写注册表的接口
ReadDatabaseServerName 和WriteDatabaseServerName
在服务器注册后,在IE里调用,却不读也不写
请高手帮我看一下???unit MySetUnit;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
ComObj, ActiveX, AspTlb, MidasServer_TLB, StdVcl,
Windows,Registry;type
TMySet = class(TASPObject, IMySet)
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
function ReadDatabaseServerName: OleVariant; safecall;
procedure WriteDatabaseServerName(const Str: WideString); safecall;
private
HKeyRoot:HKEY;
HKeySection,HKeyName_DatabaseServerName:WideString; function ReadRegString(Root:HKey;Key,Name:WideString):WideString;
function WriteRegString(Root:HKey;Key,Name,Value:WideString):Boolean; end;implementationuses ComServ;
procedure TMySet.OnEndPage;
begin
inherited OnEndPage;
end;procedure TMySet.OnStartPage(const AScriptingContext: IUnknown);
begin
HKeyRoot:=HKEY_LOCAL_MACHINE;
HKeySection:='\Software\Microsoft\Windows\MidasServer';
HKeyName_DatabaseServerName:='DatabaseServerName'; inherited OnStartPage(AScriptingContext);
end;function TMySet.ReadRegString(Root:HKey;Key,Name:WideString):WideString;
var
Reg:TRegistry;//Registry
begin
Reg:=TRegistry.Create;
Reg.RootKey:=Root;
Reg.OpenKey(Key,true);
try
Result:=Reg.ReadString(Name);
except
Result:='';
end;
Reg.CloseKey;
Reg.Free;
end;function TMySet.WriteRegString(Root:HKey;Key,Name,Value:WideString):Boolean;
var
Reg:TRegistry;//Registry
begin
try
Reg:=TRegistry.Create;
Reg.RootKey:=Root;
Reg.OpenKey(Key,true);
Reg.WriteString(Name,Value);
Reg.CloseKey;
Reg.Free;
Result:=true;
except
Result:=false;
end;
end;function TMySet.ReadDatabaseServerName: OleVariant;
begin
Result:=ReadRegString(HKeyRoot,HKeySection,HKeyName_DatabaseServerName);
end;procedure TMySet.WriteDatabaseServerName(const Str: WideString);
begin
WriteRegString(HKeyRoot,HKeySection,HKeyName_DatabaseServerName,Str);
end;
initialization
TAutoObjectFactory.Create(ComServer, TMySet, Class_MySet,
ciMultiInstance, tmApartment);
end.
ReadDatabaseServerName 和WriteDatabaseServerName
在服务器注册后,在IE里调用,却不读也不写
请高手帮我看一下???unit MySetUnit;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
ComObj, ActiveX, AspTlb, MidasServer_TLB, StdVcl,
Windows,Registry;type
TMySet = class(TASPObject, IMySet)
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
function ReadDatabaseServerName: OleVariant; safecall;
procedure WriteDatabaseServerName(const Str: WideString); safecall;
private
HKeyRoot:HKEY;
HKeySection,HKeyName_DatabaseServerName:WideString; function ReadRegString(Root:HKey;Key,Name:WideString):WideString;
function WriteRegString(Root:HKey;Key,Name,Value:WideString):Boolean; end;implementationuses ComServ;
procedure TMySet.OnEndPage;
begin
inherited OnEndPage;
end;procedure TMySet.OnStartPage(const AScriptingContext: IUnknown);
begin
HKeyRoot:=HKEY_LOCAL_MACHINE;
HKeySection:='\Software\Microsoft\Windows\MidasServer';
HKeyName_DatabaseServerName:='DatabaseServerName'; inherited OnStartPage(AScriptingContext);
end;function TMySet.ReadRegString(Root:HKey;Key,Name:WideString):WideString;
var
Reg:TRegistry;//Registry
begin
Reg:=TRegistry.Create;
Reg.RootKey:=Root;
Reg.OpenKey(Key,true);
try
Result:=Reg.ReadString(Name);
except
Result:='';
end;
Reg.CloseKey;
Reg.Free;
end;function TMySet.WriteRegString(Root:HKey;Key,Name,Value:WideString):Boolean;
var
Reg:TRegistry;//Registry
begin
try
Reg:=TRegistry.Create;
Reg.RootKey:=Root;
Reg.OpenKey(Key,true);
Reg.WriteString(Name,Value);
Reg.CloseKey;
Reg.Free;
Result:=true;
except
Result:=false;
end;
end;function TMySet.ReadDatabaseServerName: OleVariant;
begin
Result:=ReadRegString(HKeyRoot,HKeySection,HKeyName_DatabaseServerName);
end;procedure TMySet.WriteDatabaseServerName(const Str: WideString);
begin
WriteRegString(HKeyRoot,HKeySection,HKeyName_DatabaseServerName,Str);
end;
initialization
TAutoObjectFactory.Create(ComServer, TMySet, Class_MySet,
ciMultiInstance, tmApartment);
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货