SkinMagic使用方法!!

SkinMagic Toolkit 2.3包含必需四个文件,分别是SkinMagicTrial.dll,SkinMagicTrial.lib,SkinMagicLib.h和***.smf(皮肤文件)。
        一、首先谈谈如何在自己的VC程序中使用SkinMagic。
        1.在stdafx.h中添加:
          #include "SkinMagicLib.h"
          #pragma comment(lib,"SkinMagicTrial.lib")
          也可以在XXX.cpp文件中加入。效果是一样的。
        2.在BOOL CXXApp::InitInstance()中函数一开始添加:
          VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
          VERIFY( 1 == LoadSkinFile("XXXX.smf"));
          在定义对话框(CXXXDlg dlg;m_pMainWnd = &dlg;)之后显示对话框(int nResponse = dlg.DoModal();)之前添加: 
          VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
          VERIFY( 1 == SetDialogSkin( "Dialog" ) );
        这样就可以载入美化后的皮肤了。
        二、谈谈如何破解其动态连接库SkinMagicTrial.dll
        如果不破解,从网上下载的SkinMagic Toolkit 2.3在运行时会首先弹出一个让你注册的警示框,但你点相关按钮后警示框消失,不影响程序的运行,但每次这样让人感觉不爽,于是参考一些资料将其破解。
        准备工具:1.反汇编工具W32dsm8.93。2.准备一个能够写十六进制的软件,比如UltraEdit或者WinHex。此处使用UltraEdit。
        破解步骤:
        1.首先打开W32dsm,反汇编(Disassembler)->打开文件(open file to Disassembler),打开SkinMagicTrial.dll。
        2.分析完之后,点击参考(Refs)->串式参考(String data References),找到“This application uses trial version”,双击。可以发现这块代码由四个连着的push组成,而后call了一个子程序,看说明是call USER32.MessageBoxA,这里就是弹出的那个未注册对话框。只要把这一段删了,就OK了。细看一下,我们可以看到有两块一样的代码。记住这两块代码的起始位置。从00065B1开始到00065DF前面为止。
        3.关闭W32dsm,要不然一会不能正常保存。然后用UE打开SkinMagicTrial.dll,Ctrl+G,找到00065B1和00065DF(注意一下弹出的对话框的提示,在前面加0x,这个不用我解释了吧),把之间的代码全都改为十六进制数90(90在汇编中是nop指令,代表空操作),保存,再运行VC程序,OK了,没有那个对话框了!!
       这里原作者忽略了一点:在地址:00068D7--00068E4这个范围地址也需要改为90.不然仍然会弹出那个讨厌的对话框!!!
       自己已经成功实现界面的美化。。不过做的方法有点出入。有什么问题的话,我再上传自己做的方法。

你可能感兴趣的:(职场,休闲,skinMagic)