我以超级用户登录,
用程序在注册表中写了几个键值,
然后用普通用户登录后,
却打不开这个键值,为什么?
我应该怎么做?
程序如下: OURWAYKEY = '\Software\Ourway Software';
SYSSETKEY = '\HuiLongERP';function ReadConfig(var Config: ST_CONFIG): boolean;
var
pReg : TRegistry;
key : String;
pass : array [0..MAXPASSLEN] of Char;
begin
Result := false;
pReg := nil;
try
pReg := TRegistry.Create;
pReg.RootKey := HKEY_LOCAL_MACHINE;
if pReg.OpenKey(OURWAYKEY+SYSSETKEY,false) then
//普通用户登录时,返回False了,但Administrators组的用户是可以用的。
try
Config.dbServer := pReg.ReadString('Server');
Config.dbCurData := PReg.ReadString('Database');
Config.dbUser := pReg.ReadString('User'); pReg.ReadBinaryData('Password',pass,MAXPASSLEN);
key := PASSWORDKEY;
Encrypt(@pass,Pchar(key),Length(key),MAXPASSLEN);
Config.dbPassword := pass; Config.LastUser := pReg.ReadString('LastUser');
Result := true;
except
Result := False;
end;
finally
pReg.CloseKey;
pReg.Free;
end;
end;
用程序在注册表中写了几个键值,
然后用普通用户登录后,
却打不开这个键值,为什么?
我应该怎么做?
程序如下: OURWAYKEY = '\Software\Ourway Software';
SYSSETKEY = '\HuiLongERP';function ReadConfig(var Config: ST_CONFIG): boolean;
var
pReg : TRegistry;
key : String;
pass : array [0..MAXPASSLEN] of Char;
begin
Result := false;
pReg := nil;
try
pReg := TRegistry.Create;
pReg.RootKey := HKEY_LOCAL_MACHINE;
if pReg.OpenKey(OURWAYKEY+SYSSETKEY,false) then
//普通用户登录时,返回False了,但Administrators组的用户是可以用的。
try
Config.dbServer := pReg.ReadString('Server');
Config.dbCurData := PReg.ReadString('Database');
Config.dbUser := pReg.ReadString('User'); pReg.ReadBinaryData('Password',pass,MAXPASSLEN);
key := PASSWORDKEY;
Encrypt(@pass,Pchar(key),Length(key),MAXPASSLEN);
Config.dbPassword := pass; Config.LastUser := pReg.ReadString('LastUser');
Result := true;
except
Result := False;
end;
finally
pReg.CloseKey;
pReg.Free;
end;
end;
解决方案 »
- 关于动态创建窗体的简单问题
- 哪里能买到<Delphi下深入Windows核心编程>这本书
- ODAC的oraQuery,在缓存模式下ApplyUpdates和CommitUpdates有什么不一样 ?
- 关于ActiveForm的几个问题,300分相送。
- Delphi 中添加网络打印机并设为默认时不能同时添加和设为默认
- 关于treeview图标问题
- 三层中,我在客户端直接传递的SQL语句,应用段报错,点解?
- 高难数据库恢复问题!!
- 如何才能让我们的程序同时适用ACCESS和SQL SERVER两种数据库?
- 请问各位如何将自己开发的软件上传服务器供人下摘???????????
- 出现一个错误不知道怎么回事谁能帮我
- 请问如何把十进制数转换为十六进制,Delphi中有没有这个函数?
lookupprivilegevalue(Nil,'SeshutdownPrivilege',tkp.Privileges[0].luid);
Tkp.Privilegecount:=1;
Tkp.Privileges[0].Attributes:=Se_PRIVILEGE_ENABLED;
AdjustTokenprivileges(hToken,false,Tkp,Sizeof(TTokenPrivileges),nil,zero);
你试试,这段代码是取得win2k的操作权限