求教 注册表类型 该用哪种转换Edit123.text的内容?
本帖最后由 冥界3大法王 于 2022-12-14 23:00 编辑procedure TMonitor_Form.Button1Click(Sender: TObject);
var
reg: TRegistry;
begin//下面的部分类型转换有问题待解决
reg := TRegistry.Create;
reg.RootKey :=Edit1.text; //设置注册表根路径
reg.OpenKey(Edit2.text.Text), False); //。。。。。。。。。以下分支
if not reg.ValueExists(Edit3.Text) then
begin
ShowMessage('注册表键值不存在');
// reg.WriteString('User', 'UserID')
end
else
begin
ShowMessage('存在执行的操作');
// Edit1.Text := reg.ReadString('User');
end;
reg.Free;
end; RootKey是一个整型数值,转个弯好不好,判断一下字符串是否为"HKEY_LOCAL_MACHINE",然后如果字符串相等 然后RooyKey=HKEY_LOCAL_MACHINE reg.RootKey :=String(Edit1.text);www reg.RootKey :=HKEY(Edit1.text);
delphi 源代码是这样定义HKEY
{$EXTERNALSYM HKEY}
HKEY = type UINT_PTR;
{$OBJTYPENAME HKEY 'Bp6HKEY__'}
PHKEY = ^HKEY;
const
{ Reserved Key Handles. }
{$EXTERNALSYM HKEY_CLASSES_ROOT}
HKEY_CLASSES_ROOT = HKEY(Integer($80000000));
{$EXTERNALSYM HKEY_CURRENT_USER}
HKEY_CURRENT_USER = HKEY(Integer($80000001));
{$EXTERNALSYM HKEY_LOCAL_MACHINE}
HKEY_LOCAL_MACHINE = HKEY(Integer($80000002));
{$EXTERNALSYM HKEY_USERS}
HKEY_USERS = HKEY(Integer($80000003));
{$EXTERNALSYM HKEY_PERFORMANCE_DATA}
HKEY_PERFORMANCE_DATA = HKEY(Integer($80000004));
{$EXTERNALSYM HKEY_CURRENT_CONFIG}
HKEY_CURRENT_CONFIG = HKEY(Integer($80000005));
{$EXTERNALSYM HKEY_DYN_DATA}
HKEY_DYN_DATA = HKEY(Integer($80000006));
{$EXTERNALSYM PROVIDER_KEEPS_VALUE_LENGTH}
PROVIDER_KEEPS_VALUE_LENGTH = 1;
其实就是数值常量,这样判断会非常复杂,edit1中的值打错一个字母都会出错。
页:
[1]