用installshield和C写的程序通过注册表进行通信

用installshield对注册表进行操作:



nRootKey = HKEY_LOCAL_MACHINE;
RegDBSetDefaultRoot(nRootKey);//为设置默认5大注册表项的哪一个
RegDBKeyExist (regDbKey);//这个方法返回值为0表示regDbKey在注册表中存在,返回值<0表示不存在。
//如果不存在的话,我要创建这个项并在其中写入一下名字为Sanc的字段,并赋以初值,那么我调用这句话就行了:
RegDBSetKeyValueEx("SofeWare\\Clients", "Sanc", REGDB_STRING, "10", -1);//Clients键设置一个新值Sanc,如果不存在就不会设置值。
上图为Get得到键值。





C++对注册表进行操作:

HKEY hKey;
    HKEY hSubKey;
    DWORD dwValue = 1;
    char Buffer[] = "raw2rgb.dll";

    // 使用RegCreateKey能保证如果Software\daheng_directx不存在的话,创建一个。
    if (RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\daheng_directx", &hKey) == ERROR_SUCCESS) {
        //
        // 在这里就可以使用hKey来操作daheng_directx这个KEY里面的值了。
        //

        if (RegSetValueEx(hKey, "AEC", 0, REG_DWORD, (CONST BYTE*)&dwValue, sizeof(DWORD)) == ERROR_SUCCESS) {
            printf("RegSetValueEx: AEC = %d\n", dwValue);
        }

        //
        // 如果想在Software\\daheng_directx创建一个plugins key,那么就不能再使用hKey了,需要
        // 重新获取这个结点的HKEY。
        //

        if (RegCreateKey(hKey, "plugins", &hSubKey) == ERROR_SUCCESS) {
            if (RegSetValueEx(hSubKey, "颜色校正插件", 0, REG_SZ, (CONST BYTE*)Buffer,strlen(Buffer) + 1) == ERROR_SUCCESS) {
                printf("RegSetValueEx: 颜色校正插件 = %s\n", Buffer);
            }
            RegCloseKey(hSubKey);
        }
    }
    RegCloseKey(hKey);


//==================================================================================================
int Write_reg_error()
{
char system[]="11";
int i=0;
HKEY hKey;
//RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Clients\\WritePara",0,KEY_SET_VALUE,&hKey );//打开注册表,不存在时报错
if(RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Clients\\WritePara", &hKey) != ERROR_SUCCESS)//打开注册表,不存在时创建。
{
printf("Error 1\n");
return -1;
}
if(RegSetValueEx(hKey, "AutoAdminLogon",0,REG_SZ,(const unsigned char*)system,sizeof(system)) != ERROR_SUCCESS)//对对应的键值写入数据
{
printf("Error 2\n");
return -1;
}
RegCloseKey(hKey);
scanf("%d", &i);
return 0;
}
时间: 2024-08-27 02:02:18

用installshield和C写的程序通过注册表进行通信的相关文章

加密狗复制备份 订制写狗程序 算法注册机 OEM信息 二次封装

加密狗复制备份.模拟  行业软件批发零售 定制写狗程序.注册机 软件破解 逆向工程   酒店客房管理.餐饮娱乐管理.美容美发管理.汽车行业.会员管理.医疗软件.客户管理.财务进销存系统 .OA办公 .服装设计 等大量行业软件批发零售 合作联系QQ: 844256300 =========================================================================================== 企发会员积分系统3.5 冠唐仓库管理网络版 凤

qt 添加本程序的注册表项

QStringcmd;cmd.clear();QStringapplication_path=QCoreApplication::applicationFilePath();//带文件扩展名的全路径application_path.replace("/","\\");QStringregPath="HKEY_CLASSES_ROOT\\software_name\\shell\\open\\command\\";QSettings *progra

【转】C#程序打包安装部署之添加注册表项

今天为大家整理了一些怎样去做程序安装包的具体文档,这些文档并不能确保每个人在做安装包的时候都能正确去生成和运行,但是这些文档的指导作用对于需要的朋友来说还是很有必要的,在实际产品的安装部署过程中可能有的企业会借助一些现成强大的安装包制作软件进行安装程序的安装,也有的企业或者个人会自己去制作安装包.为了能给予新手一些帮助,现分享这些文档,希望大家能够把这些知识运用在自己的实际工作中. 目前文档主要内容有: 一:创建创建Windows安装项目 二:添加内容文件 三:添加项目输出 四:添加注册表信息

让程序出现在控制面板(写注册表)

1.主要是写注册表,在HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall这个下面建立一个键值,一般都是一个唯的GUID 2.然后在GUID键值下面,创建许多子键值. 示例代码: 假设m_strInstallPath="C:\\Program files\\App"; QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE\\SOFT

嵌入式Linux之旅——环境搭建篇之烧写裸机程序

本小节将介绍如何使用oflash和openjtag烧写裸机程序.oflash也支持并口烧写,方法与openjtag类似.如果你想使用jlink烧写,需要安装SEGGER的J-Flash的工具,这里我们就不多介绍. 首先需要先安装oflash,oflash由开发板厂商提供或者从网上下载.将oflash加上可执行权限,拷贝到“/usr/bin”目录下即可.命令如下: sudo cp oflash /usr/bin/ && sudo chmod +x /usr/bin/oflash 下面就是具体

[C++] 用Xcode来写C++程序[7] Class

用Xcode来写C++程序[7] Class 不带构造函数的Rectangle类 // // Rectangle.h // Plus // // Created by YouXianMing on 15/3/12. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #ifndef __Plus__Rectangle__ #define __Plus__Rectangle__ #include <stdio.h> class

[C++] 用Xcode来写C++程序[4] 函数

用Xcode来写C++程序[4] 函数 此节包括引用函数,内联函数,防止修改函数入参,函数自身带有默认值. 引用函数:防止复制对象,减少系统开销 内联函数:编译的时候根据具体情形将代码嵌入进去,成不成功编译器说了算,减少系统开销提升性能 引用函数(防止篡改初始值的入参声明方式):防止修改数据源 函数参数带有默认值:函数的某个参数可以给定默认值,精简函数的使用 最简单的函数 #include <iostream> using namespace std; int addition (int a,

[C++] 用Xcode来写C++程序[5] 函数的重载与模板

用Xcode来写C++程序[5] 函数的重载与模板 此节包括函数重载,隐式函数重载,函数模板,带参数函数模板 函数的重载 #include <iostream> using namespace std; int operate (int a, int b) { return (a * b); } double operate (double a, double b) { return (a / b); } int main () { int x = 5; int y = 2; double n

[C++] 用Xcode来写C++程序[6] Name visibility

用Xcode来写C++程序[6] Name visibility 此小结包括了命名空间的一些使用细节 命名空间 #include <iostream> using namespace std; namespace foo { // 函数 int value() { return 5; } } namespace bar { // 常量 const double pi = 3.1416; // 函数 double value() { return 2*pi; } } int main () {