⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codesys.txt

📁 CODESYS中用C语言实现电机先后按不同的圆心转动
💻 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 + -