autocad2008 注册信息备份恢复
2013-09-05 16:08
141 查看
autocad2008注册过以后有时候会出现要求重新注册的情况,而且出现之后反复注册都不成功,
这个时候把注册信息文件删除掉,再重新注册就可以了,也可以注册好了以后先把注册信息文件备份下来,一旦出现要求重新注册的情况就覆盖回去。
好长时间不写代码了,练练手
// ACADTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")
BOOL BackUp(_TCHAR * OrgFileName)
{
_TCHAR drv[MAX_PATH],dir[MAX_PATH],FileName[MAX_PATH],Ext[MAX_PATH];
_tsplitpath(OrgFileName,drv,dir,FileName,Ext);
_TCHAR dstFileName[MAX_PATH]={0};
_tcscpy(dstFileName,_T("c:\\acadbackup\\"));
_tcscat(dstFileName,FileName);
_tcscat(dstFileName,Ext);
return CopyFile(OrgFileName,dstFileName,FALSE);
}
BOOL Reverse(_TCHAR *backFileName,_TCHAR *OrgFilePath)
{
_TCHAR drv[MAX_PATH],dir[MAX_PATH],FileName[MAX_PATH],Ext[MAX_PATH];
_tsplitpath(backFileName,drv,dir,FileName,Ext);
_TCHAR dstFileName[MAX_PATH]={0};
_tcscpy(dstFileName,OrgFilePath);
_tcscat(dstFileName,FileName);
_tcscat(dstFileName,Ext);
return CopyFile(backFileName,dstFileName,FALSE);
}
BOOL ReverseAcadLicense(_TCHAR *backupedFileName)
{
TCHAR szPath[MAX_PATH]={0};
SHGetSpecialFolderPath(NULL,szPath,CSIDL_COMMON_APPDATA,FALSE);
_tcscat(szPath,_T("\\autodesk\\software licenses\\"));
return Reverse(backupedFileName,szPath);
}
BOOL FindLicenseFile(_TCHAR * licenseFile)
{
TCHAR szPath[MAX_PATH]={0};
TCHAR szPathMatch[MAX_PATH]={0};
TCHAR szRealFile[MAX_PATH]={0};
SHGetSpecialFolderPath(NULL,szPath,CSIDL_COMMON_APPDATA,FALSE);
_tcscat(szPath,_T("\\autodesk\\software licenses\\"));
_tcscpy(szPathMatch,szPath);
_tcscat(szPathMatch,_T("*.dat"));
WIN32_FIND_DATA fa;
HANDLE hd=FindFirstFile(szPathMatch,&fa);
if(INVALID_HANDLE_VALUE==hd)
return FALSE;
do
{
_tcscpy(szRealFile,szPath);
_tcscat(szRealFile,_T("\\"));
_tcscat(szRealFile,fa.cFileName);
//_tprintf(_T("%s"),szRealFile);
_tcscpy(licenseFile,szRealFile);
} while (FindNextFile(hd,&fa));
return FindClose(hd);
}
BOOL FindBackUpFile(_TCHAR * backupFile)
{
TCHAR szPath[MAX_PATH]={0};
TCHAR szPathMatch[MAX_PATH]={0};
TCHAR szRealFile[MAX_PATH]={0};
_tcscpy(szPath,_T("c:\\acadbackup\\"));
_tcscpy(szPathMatch,szPath);
_tcscat(szPathMatch,_T("*.dat"));
WIN32_FIND_DATA fa;
HANDLE hd=FindFirstFile(szPathMatch,&fa);
if(INVALID_HANDLE_VALUE==hd)
return FALSE;
do
{
_tcscpy(szRealFile,szPath);
_tcscat(szRealFile,_T("\\"));
_tcscat(szRealFile,fa.cFileName);
//_tprintf(_T("%s"),szRealFile);
_tcscpy(backupFile,szRealFile);
} while (FindNextFile(hd,&fa));
return FindClose(hd);
}
void useage()
{
_tprintf(_T("autocad 2008 license file backup/recovery tool:\r\n"));
_tprintf(_T("try ACADTest.exe -b or ACADTest.exe /b to backup license file\r\n"));
_tprintf(_T("try ACADTest.exe -r or ACADTest.exe /r to recovery license file\r\n"));
}
int _tmain(int argc, _TCHAR* argv[])
{
bool backup=false;
if(argc==2)
{
if((_tcsicmp(argv[1],_T("/b"))==0)||_tcsicmp(argv[1],_T("-b"))==0)
{
backup=true;
}
if((_tcsicmp(argv[1],_T("/r"))==0)||_tcsicmp(argv[1],_T("-r"))==0)
{
backup=false;
}
}
else
{
useage();
system("pause");
return -1;
}
TCHAR szLicenseFileName[MAX_PATH]={0};
TCHAR szBackupFileName[MAX_PATH]={0};
if(backup)
{
CreateDirectory(_T("c:\\acadbackup\\"),NULL);
if(FindLicenseFile(szLicenseFileName))
{
if(FindBackUpFile(szBackupFileName))
{
TCHAR userinput[10]={0};
_tprintf(_T("backup file already exist,are you sure to cover it?please input y(yes)/n(no) \r\n"));
int count=_tscanf(_T("%s"),&userinput);
if((_tcsicmp(userinput,_T("y"))==0)||_tcsicmp(userinput,_T("yes"))==0)
{
DWORD attr=GetFileAttributes(szBackupFileName);
SetFileAttributes(szBackupFileName,attr&~FILE_ATTRIBUTE_READONLY);
DeleteFile(szBackupFileName);
if(BackUp(szLicenseFileName))
{
_tprintf(_T("backup license file success!"));
}
}
else if((_tcsicmp(userinput,_T("n"))==0)||_tcsicmp(userinput,_T("no"))==0)
{
_tprintf(_T("user interrupt\r\n"));
}
else
{
_tprintf(_T("input incorrect\r\n"));
}
}
}
}
else
{
if(FindBackUpFile(szBackupFileName))
{
if(FindLicenseFile(szLicenseFileName))
{
TCHAR userinput[10]={0};
_tprintf(_T("license file already exist,are you sure to cover it?please input y(yes)/n(no) \r\n"));
int count=_tscanf(_T("%s"),&userinput);
if((_tcsicmp(userinput,_T("y"))==0)||_tcsicmp(userinput,_T("yes"))==0)
{
DWORD attr=GetFileAttributes(szLicenseFileName);
SetFileAttributes(szLicenseFileName,attr&~FILE_ATTRIBUTE_READONLY);
DeleteFile(szLicenseFileName);
if(ReverseAcadLicense(szBackupFileName))
{
_tprintf(_T("recovery license file success!"));
}
}
else if((_tcsicmp(userinput,_T("n"))==0)||_tcsicmp(userinput,_T("no"))==0)
{
_tprintf(_T("user interrupt\r\n"));
}
else
{
_tprintf(_T("input incorrect\r\n"));
}
}
}
}
return 0;
}
这个时候把注册信息文件删除掉,再重新注册就可以了,也可以注册好了以后先把注册信息文件备份下来,一旦出现要求重新注册的情况就覆盖回去。
好长时间不写代码了,练练手
// ACADTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")
BOOL BackUp(_TCHAR * OrgFileName)
{
_TCHAR drv[MAX_PATH],dir[MAX_PATH],FileName[MAX_PATH],Ext[MAX_PATH];
_tsplitpath(OrgFileName,drv,dir,FileName,Ext);
_TCHAR dstFileName[MAX_PATH]={0};
_tcscpy(dstFileName,_T("c:\\acadbackup\\"));
_tcscat(dstFileName,FileName);
_tcscat(dstFileName,Ext);
return CopyFile(OrgFileName,dstFileName,FALSE);
}
BOOL Reverse(_TCHAR *backFileName,_TCHAR *OrgFilePath)
{
_TCHAR drv[MAX_PATH],dir[MAX_PATH],FileName[MAX_PATH],Ext[MAX_PATH];
_tsplitpath(backFileName,drv,dir,FileName,Ext);
_TCHAR dstFileName[MAX_PATH]={0};
_tcscpy(dstFileName,OrgFilePath);
_tcscat(dstFileName,FileName);
_tcscat(dstFileName,Ext);
return CopyFile(backFileName,dstFileName,FALSE);
}
BOOL ReverseAcadLicense(_TCHAR *backupedFileName)
{
TCHAR szPath[MAX_PATH]={0};
SHGetSpecialFolderPath(NULL,szPath,CSIDL_COMMON_APPDATA,FALSE);
_tcscat(szPath,_T("\\autodesk\\software licenses\\"));
return Reverse(backupedFileName,szPath);
}
BOOL FindLicenseFile(_TCHAR * licenseFile)
{
TCHAR szPath[MAX_PATH]={0};
TCHAR szPathMatch[MAX_PATH]={0};
TCHAR szRealFile[MAX_PATH]={0};
SHGetSpecialFolderPath(NULL,szPath,CSIDL_COMMON_APPDATA,FALSE);
_tcscat(szPath,_T("\\autodesk\\software licenses\\"));
_tcscpy(szPathMatch,szPath);
_tcscat(szPathMatch,_T("*.dat"));
WIN32_FIND_DATA fa;
HANDLE hd=FindFirstFile(szPathMatch,&fa);
if(INVALID_HANDLE_VALUE==hd)
return FALSE;
do
{
_tcscpy(szRealFile,szPath);
_tcscat(szRealFile,_T("\\"));
_tcscat(szRealFile,fa.cFileName);
//_tprintf(_T("%s"),szRealFile);
_tcscpy(licenseFile,szRealFile);
} while (FindNextFile(hd,&fa));
return FindClose(hd);
}
BOOL FindBackUpFile(_TCHAR * backupFile)
{
TCHAR szPath[MAX_PATH]={0};
TCHAR szPathMatch[MAX_PATH]={0};
TCHAR szRealFile[MAX_PATH]={0};
_tcscpy(szPath,_T("c:\\acadbackup\\"));
_tcscpy(szPathMatch,szPath);
_tcscat(szPathMatch,_T("*.dat"));
WIN32_FIND_DATA fa;
HANDLE hd=FindFirstFile(szPathMatch,&fa);
if(INVALID_HANDLE_VALUE==hd)
return FALSE;
do
{
_tcscpy(szRealFile,szPath);
_tcscat(szRealFile,_T("\\"));
_tcscat(szRealFile,fa.cFileName);
//_tprintf(_T("%s"),szRealFile);
_tcscpy(backupFile,szRealFile);
} while (FindNextFile(hd,&fa));
return FindClose(hd);
}
void useage()
{
_tprintf(_T("autocad 2008 license file backup/recovery tool:\r\n"));
_tprintf(_T("try ACADTest.exe -b or ACADTest.exe /b to backup license file\r\n"));
_tprintf(_T("try ACADTest.exe -r or ACADTest.exe /r to recovery license file\r\n"));
}
int _tmain(int argc, _TCHAR* argv[])
{
bool backup=false;
if(argc==2)
{
if((_tcsicmp(argv[1],_T("/b"))==0)||_tcsicmp(argv[1],_T("-b"))==0)
{
backup=true;
}
if((_tcsicmp(argv[1],_T("/r"))==0)||_tcsicmp(argv[1],_T("-r"))==0)
{
backup=false;
}
}
else
{
useage();
system("pause");
return -1;
}
TCHAR szLicenseFileName[MAX_PATH]={0};
TCHAR szBackupFileName[MAX_PATH]={0};
if(backup)
{
CreateDirectory(_T("c:\\acadbackup\\"),NULL);
if(FindLicenseFile(szLicenseFileName))
{
if(FindBackUpFile(szBackupFileName))
{
TCHAR userinput[10]={0};
_tprintf(_T("backup file already exist,are you sure to cover it?please input y(yes)/n(no) \r\n"));
int count=_tscanf(_T("%s"),&userinput);
if((_tcsicmp(userinput,_T("y"))==0)||_tcsicmp(userinput,_T("yes"))==0)
{
DWORD attr=GetFileAttributes(szBackupFileName);
SetFileAttributes(szBackupFileName,attr&~FILE_ATTRIBUTE_READONLY);
DeleteFile(szBackupFileName);
if(BackUp(szLicenseFileName))
{
_tprintf(_T("backup license file success!"));
}
}
else if((_tcsicmp(userinput,_T("n"))==0)||_tcsicmp(userinput,_T("no"))==0)
{
_tprintf(_T("user interrupt\r\n"));
}
else
{
_tprintf(_T("input incorrect\r\n"));
}
}
}
}
else
{
if(FindBackUpFile(szBackupFileName))
{
if(FindLicenseFile(szLicenseFileName))
{
TCHAR userinput[10]={0};
_tprintf(_T("license file already exist,are you sure to cover it?please input y(yes)/n(no) \r\n"));
int count=_tscanf(_T("%s"),&userinput);
if((_tcsicmp(userinput,_T("y"))==0)||_tcsicmp(userinput,_T("yes"))==0)
{
DWORD attr=GetFileAttributes(szLicenseFileName);
SetFileAttributes(szLicenseFileName,attr&~FILE_ATTRIBUTE_READONLY);
DeleteFile(szLicenseFileName);
if(ReverseAcadLicense(szBackupFileName))
{
_tprintf(_T("recovery license file success!"));
}
}
else if((_tcsicmp(userinput,_T("n"))==0)||_tcsicmp(userinput,_T("no"))==0)
{
_tprintf(_T("user interrupt\r\n"));
}
else
{
_tprintf(_T("input incorrect\r\n"));
}
}
}
}
return 0;
}
相关文章推荐
- 手机信息备份和恢复系统
- Mysql触发器在PHP项目中用来做信息备份、恢复和清空
- win8.1系统激活信息备份与还原方法方便以后快速恢复系统
- 备份和恢复 Windows 共享信息的简便方法
- 在无备份信息和无备份制文件及非catalog下的异机恢复数据库
- SaaS模式下的智能手机信息备份及恢复方案的设计与实现
- 从安卓recovery 的 backup 备份数据中手动恢复 通讯录、短信,或者其他软件中的信息的方法
- sybase 11.5 的备份文件恢复到15.7 恢复信息如下:
- 备份恢复统计信息
- 服务器重做系统【如何备份和恢复服务器上的网站信息】
- 必须使用记录或另一备份以恢复包含系统注册数据的文件.恢复成功(已解决)
- Oracle入门教程:统计信息的恢复和备份
- .NET — Examples of use (连接池,更新blob字段,事件,备份,恢复,取数据库系统信息)
- 常用软件注册信息查找和备份全攻略
- ollydbg插件:MyInfo--备份和恢复 标签/注释/int3断点信息
- rman输出信息解释及表空间备份与在线恢复
- Oracle数据库表信息,序列,视图等导出,导入。(数据库备份和恢复)
- 轻松、高效、经济地备份并恢复关键业务信息
- 分享一统计信息的备份与恢复