13,870
社区成员




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);
}
创建一个名称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改一下
读取HKEY_LOCAL_MACHINE不成功,但读取HKEY_CURRENT_USER成功