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);
}

 

...全文
168 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxxer 2022-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 2022-05-04
  • 打赏
  • 举报
回复

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

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

img

cxxer 2022-05-04
  • 举报
回复
@ooolinux 读取HKEY_LOCAL_MACHINE不成功,但读取HKEY_CURRENT_USER成功
cxxer 2022-05-04
  • 打赏
  • 举报
回复
程序编译通过,但读取不到键值。注册表项存在,键存在。
cxxer 2022-05-04
  • 举报
回复
@cxxer 读取HKEY_LOCAL_MACHINE不成功,但读取HKEY_CURRENT_USER成功。

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧