Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8609192
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类:

2006-11-01 08:50:10

[点评:值得注意的是这里的破解方法还是比较独特的.程序使用线程,一旦发现他的提示对话框则关闭掉,不让他出现,蛮有意思的.]

1.先到 下载skin++的试用版本.其实就三个文件

         SkinPPWTL.h

         SkinPPWTL.lib

         SkinPPWTL.dll

我 就不长篇大论叽叽歪歪了,写程序的一看这三个文件就明白是干什么的.下面分析一下如何将试用版本变为正式版本.Skin++在换肤的时候需要调用 skinppLoadSkin函数.该函数负责完成皮肤的切换并弹出一个注册对话框来让你注册.其实只要把这个讨厌的注册对话框干掉就一切OK了.嗯,想 法不错,下面就动手吧....

2.在App里面封装几个函数,或者你挺懒的话可以直接把下面几个函数拷过去,改改.

void CGGApp::SetSkin(CString strSkinFile)
{
 //Init skins.
 //Find the skins file in the Skins directory.
 KillSkinpp();
 strSkinFile=m_strPath+";
 BOOL bReg=skinppLoadSkin(strSkinFile.GetBuffer(strSkinFile.GetLength()));
 strSkinFile.ReleaseBuffer(); 
}

void CGGApp::KillSkinpp()
{
 DWORD dwThread;
 HANDLE hThread=::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadKill,0,0,&dwThread);
 CloseHandle(hThread);
}

DWORD CGGApp::ThreadKill(LPVOID lp)//注意!这个线程函数的声明是static的!
{
 int iCount=0;
 while (iCount++<10000)
 {
  Sleep(1);
  HWND hWnd=::FindWindow(NULL,"UIPOWER");
  if (hWnd==NULL) continue;
  //
  WPARAM wp=BN_CLICKED<<16 | IDNO;
  ::SendMessage(hWnd,WM_COMMAND,wp,0);
  break;
 }
 return EXIT_SUCCESS;
}

一看就明白了.其中m_strPath是程序路径,在App的InitInstance函数里面得到就行.

//Application path===========================================
 GetCurrentDirectory(MAX_PATH,m_strPath.GetBuffer(MAX_PATH+1));
 m_strPath.ReleaseBuffer();

阅读(3188) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-16 13:29:17

垃圾!