中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 看雪学院专区 > 序列号
拼音加加2.0注册机,适用于2.01
作者:guest 时间:2005-09-11 21:09 出处:www.pediy.com 责编:bighearted
              摘要:拼音加加2.0注册机,适用于2.01
#include <windows.h>
#include <stdio.h>

const char REG_KEY_NAME[]= "Software\\Rovasoft";
const char REG_VALUE_NAME1[]= "BookID";
const char REG_VALUE_NAME2[]= "Key";

#define FAIL 0xFFFFFFFFL

#define MAX_LEN  32

void main(void)
{
    HANDLE handle;
    HKEY hKey;
    long BookID, BookIDSize;
    char Key[MAX_LEN];
    char buf[MAX_LEN];
    int k;
    long ValueType;
    char subtractor[16] =
    {    0x2F,
        0x2E,
        0x2C,
        0x2D,
        0x2F,    //not sure
        0x2D,
        0x2F,    //not sure
        0x2F,
        0x2C,
        0x2E,
        0x2F,    //not sure
        0x2F,    //not sure
        0x2F,    //not sure
        0x2F,    //not sure
        0x2F,    //not sure
        0x2F    //not sure        
    };
    
    if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, REG_KEY_NAME, NULL, NULL, NULL, KEY_ALL_ACCESS,
                        NULL, &hKey, NULL) != ERROR_SUCCESS)
    {
        printf("Error opening registry key \"%s\".\n", REG_KEY_NAME);
        return;
    }

    BookIDSize = sizeof(BookID);
    if (RegQueryValueEx(hKey, REG_VALUE_NAME1, NULL, (unsigned long *)&ValueType, (LPBYTE)&BookID,
                        (LPDWORD)&BookIDSize) != ERROR_SUCCESS)
    {
        printf("Error reading registry value \"%s\\%s\".\n", REG_KEY_NAME, REG_VALUE_NAME1);
        RegCloseKey(hKey);
        return;
    }

    if (BookID < 1000000000L)
    {
        BookID += 1000000000L;
    }

    sprintf(buf, "%010u", BookID);
    lstrcat(buf, "000000");

    for (k = 0; k < 16; k++)
    {
        Key[k] = ((buf[k] - subtractor[k]) % 10) + '0';
    }
    
    Key[16] = '\0';
    
    if (RegSetValueEx(hKey, REG_VALUE_NAME2, NULL, REG_SZ , (CONST BYTE *)(&Key[0]),
                        lstrlen(Key) + 1) != ERROR_SUCCESS)
    {
        printf("Error writing registry value \"%s\\%s\".\n", REG_KEY_NAME, REG_VALUE_NAME2);
        RegCloseKey(hKey);
        return;
    }

    RegCloseKey(hKey);

    printf("Successfully registered.\n");
}
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有