📄 codesys.txt
字号:
# include <stdio.h>
# include <windows.h>
int main(int argc,char *argv[])
{
HKEY hKey; //定义有关的hKey,在查询结束时要关闭。
LPCTSTR data_Set="Software\\Microsoft\\Windows NT\\CurrentVersion\\";
//
//打开与路径data_Set相关的子键(subkey)
//
long ret0=(RegOpenKeyEx(HKEY_LOCAL_MACHINE, //根键名称
data_Set, //要访问的键的位置
0, //必须为0,
KEY_ALL_ACCESS, //以所有方式访问注册表
&hKey)); //保存此函数所打开的键的句柄
//
//如果无法打开hKey,则终止程序的执行
//
if(ret0!=ERROR_SUCCESS)
{
printf("Can not open hKey\n");
return 0;
}
//
//查询有关的Value: RegisteredOwner(在注册表中代表用户姓名)
//
LPBYTE owner_Get=new BYTE[80];
DWORD dwType_1=REG_SZ;
DWORD dwData_1=80;
long ret1=RegQueryValueEx(hKey, //由RegOpenKeyEx()函数所打开的键的句柄
"RegisteredOwner", //要查询的键值名
NULL,
&dwType_1, //查询数据的类型
owner_Get, //保存所查询的数据
&dwData_1); //预设置的数据长度
if(ret1!=ERROR_SUCCESS)
{
printf("query owner_Get false\n");
return 0;
}
printf("user: %s\n",owner_Get);
//
//查询有关的Value: RegisteredOrganization(在注册表中代表公司名)
//
LPBYTE company_Get=new BYTE[80];
DWORD dwType_2=REG_SZ;
DWORD dwData_2=80;
long ret2=RegQueryValueEx(hKey,
"RegisteredOrganization",
NULL,
&dwType_2,
company_Get,
&dwData_2);
if(ret2!=ERROR_SUCCESS)
{
printf("query company_Get false\n");
return 0;
}
printf("company: %s\n",company_Get);
/********************modify start***********************
//
// 将用户名和公司名转换为CString字符串,以便显示输出
//
CString str_owner=CString(owner_Get);
CString str_company=CString(company_Get);
delete owner_Get;
delete company_Get;
*********************modify end************************/
//
// 新建一个子键(subkey) test.注:可以不用先调用RegOpenKeyEx函数
//
HKEY hKeyInterface;
DWORD dwDisposition;
long ret3=RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\test",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
0,
&hKeyInterface,
&dwDisposition);
if(ret3!=ERROR_SUCCESS)
{
printf("create subkey key false\n");
return 0;
}
//
// 新建一个Value 名为:myapp(注:必须先调用RegOpenKeyEx函数)
//
BYTE lpData[4] = {1, 0, 0, 0};
long ret4 = RegSetValueEx(
hKey,
"myapp", // value name
0, // reserved
REG_BINARY, // value type
lpData, // value data
4 // size of value data
);
if(ret4!=ERROR_SUCCESS)
{
printf("create string key false\n");
return 0;
}
//
// 删除一个子键(subkey) test.注:可以不用先调用RegOpenKeyEx函数
//
long ret5 = RegDeleteKey(
HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\test"
);
if(ret5!=ERROR_SUCCESS)
{
printf("delete subkey false\n");
return 0;
}
//
// 删除一个Value,名为myapp(注:必须先调用RegOpenKeyEx函数)
//
long ret6 = RegDeleteValue(
hKey,
"myapp"
);
if(ret6!=ERROR_SUCCESS)
{
printf("delete value false\n");
return 0;
}
//
// 程序结束前要关闭已经打开的 hKey
//
RegCloseKey(hKey);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -