简单去掉Dexeperience(DX)未注册限制

[C#适用]
      DXperience是一款相当强大的控件,很多人都喜欢用它,但是注册费用太贵了。破解的吧,又不像是一个普通的EXE那么便捷,网上也有一些破解的版本存在。我找了一些试用,但破解过程复杂,而且,不知道是不是我RP不行啊,总是不成功。
      后来发现,其实未注册的只是程序运行的时候会弹出一个讨厌的版权框,(没有源码和最后程序没有关系),把这个框点击关闭之后就一切正常了。于是萌发了让程序自己把它去掉的想法。

     思路很简单:程序运行时,在控件初始化之前创建一个线程,这个线程一直查找这个提示框,然后给它发送WM_CLOSE 的消息即可。
下面是代码,在VS2005上测试通过:

 1 using  System.Threading;  // 添加创建线程的引用
 2 using  System.Runtime.InteropServices;  // 添加使用API的引用
 3
 4 // 声明两个API
 5 [DllImport( " user32.dll " )]
 6          static   extern  IntPtr FindWindow(IntPtr ptr1,  string  strWindow);  // 这里比较特殊,后面会讲到
 7         [DllImport( " user32.dll " )]
 8          static   extern   int  PostMessage(IntPtr hWnd,  int  msg,  int  wParam,  int  lParam);
 9
10 public  frmMain()
11          {
12            // 此处关闭窗口
13            Thread myThread = new Thread(new ThreadStart(this.KillDXThread));
14            myThread.Start();
15            // 关闭代码应该在初始化组件之前调用,否则会被DX截停.
16           InitializeComponent();
17        }

18
19          public   void  KillDXThread()
20          {
21            do 
22            {
23                IntPtr dxWin = FindWindow(IntPtr.Zero, "Information");
24                if(dxWin != IntPtr.Zero)
25                {
26                    PostMessage(dxWin, 0x1000);
27                    break;
28                }

29            }
 while (true);
30            ;
31        }
    正常的 FindWindow函数两个参数都应该是String,只是DX的弹窗的CLASS总是在发生变化(标题不变),所以干脆直接传一个NULL(IntPtr.Zero)给第一个参数,第二个参数是DX的标题.
   PostMessage第二个参数是消息,WM_CLOSE 是 0x10H.

    运行程序,弹窗一闪而过,是不是很简单!(我用的是DX7.3.5版本.)

转载于:https://www.cnblogs.com/draren/archive/2008/07/09/1238754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值