TRegistry读取键值的问题。

cxxer 2022-05-04 12:01:41

 

String TfrmMain::GetRegistryValue(String KeyName)
{
	String r;
	TRegistry *Reg = new TRegistry(KEY_READ);
	try
	{
		Reg->RootKey = HKEY_LOCAL_MACHINE;
		//false指如果键不存在,我们不去创建它
		if (Reg->OpenKey(KeyName, false) != false)
			r = Reg->ReadString("FileName");
	}
	__finally
	{
		delete Reg;
	}
	return r;
}


void __fastcall TfrmMain::btnReadKeyValueClick(TObject *Sender)
{
	if (!edtKeyName->Text.IsEmpty())
		edtKeyValue->Text = GetRegistryValue(edtKeyName->Text);
	else
		MessageBox(Handle, L"键名不能为空。", L"错误", MB_OK|MB_ICONERROR);
}

 

...全文
97 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxxer 05-05

创建一个名称test 类型reg_dword 数据1 如果是只有=那会默认以类型reg_sz创建
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ys
test =reg_dword 1

2。注册表键数值 [更改的权限]
例如:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run [1 7 17]
上例中是分别设置 Administrators everyone System 三个用户对注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
拥有完全访问权限

下面我们看看对应的权限代码

1 - Administrators 完全访问
2 - Administrators 只读访问
3 - Administrators 读和写入访问
4 - Administrators 读、写入、删除访问
5 - Creator 完全访问
6 - Creator 读和写入访问
7 - everyone 完全访问
8 - everyone 只读访问
9 - everyone 读和写入访问
10 - everyone 读、写入、删除访问
11 - Power Users 完全访问
12 - Power Users 读和写入访问
13 - Power Users 读、写入、删除访问
14 - System Operators 完全访问
15 - System Operators 读和写入访问
16 - System Operators 读、写入、删除访问
17 - System 完全访问
18 - System 读和写入访问
19 - System 只读访问
20 - Administrators 读、写、执行访问
21 - Interactive User 完全访问
22 - Interactive User 读和写入访问
23 - Interactive User 读、写入、删除访问

就第一个例子,我们要设置常见的3个组的用户为只读权限.那么先新建一个文件名为regini.ini然后编辑regini.ini的内容如下:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run [2 9 19]

然后保存regini.ini 在命令行下导入regini.ini的命令是:
regini regini.ini

使用方法
C:>regini regset.ini 就行啦

regset.ini 是你要修改的数据 下面举例!

regset.ini 文件内容
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
test = c:\windows\system32\fucktheworld.exe

就是在启动项加个键值 test 内容是启动 c:\windows\system32\fucktheworld.exe
很简单吧!
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run [17]

把run项设为只允许system控制 其他用户不可控制 [17] 为控制参数

  • 打赏
  • 举报
回复

键访问权限的问题,命令行运行regini.exe改一下

  • 打赏
  • 举报
回复
cxxer 05-04

读取HKEY_LOCAL_MACHINE不成功,但读取HKEY_CURRENT_USER成功

  • 打赏
  • 举报
回复
ooolinux 05-04

img

  • 打赏
  • 举报
回复
cxxer 05-04
@ooolinux 读取HKEY_LOCAL_MACHINE不成功,但读取HKEY_CURRENT_USER成功
  • 举报
回复
cxxer 05-04
程序编译通过,但读取不到键值。注册表项存在,键存在。
  • 打赏
  • 举报
回复
cxxer 05-04
@cxxer 读取HKEY_LOCAL_MACHINE不成功,但读取HKEY_CURRENT_USER成功。
  • 举报
回复
相关推荐
发帖
C++ Builder
加入

1.3w+

社区成员

C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
申请成为版主
帖子事件
创建了帖子
2022-05-04 12:01
社区公告
暂无公告