发新话题
打印

制作[QQ挂机工具]的方法

制作[QQ挂机工具]的方法

制作[QQ挂机工具]的方法

前提:本教程不适合初学者应用!初学者教程,我晚上再发
   
    编程思路:点击QQ托盘图标,在弹出的菜单中可以看到有"上线"和"离线"两项菜单,只要在间隔时间内自动点击"上线"和"离线"菜单就可以达到目的。点击需要用到 SendMessage函数。但使用的前提是知道窗口的句柄和参数。通过VC的SPY++工具可以得到窗口的类名“#32770”,在程序中用findwindowex函数来查找它,并返回窗口的句柄。再利用SPY++工具找到入口参数。通过发送消息 给目标窗口句柄即可,
   

    程序设计:新建一个应用程序工程,窗体Form1作为主窗体,caption属性为“挂级”。在窗体上添加一个spinedit控件,并设置其属性: "increment" 属性为"1";"max"属性为"60";"min"属性为"30"。添加一个时钟控件,并将属性INTERVAL的值设置为1000(即1秒),再添加一个Label控件、其caption属性设为“时间间隔”。最后再添加两个按钮控件,设置caption属性分别为“开始”和“结束”。
   

    编写代码:在这里只列出了核心代码


  
             function GetQQWnd: HWND;
            var
              hCurrentWindow: HWnd;
               szclass:array[0..254]of char;
            begin
              hCurrentWindow := GetWindow(Application.Handle, GW_HWNDFIRST);
              while hCurrentWindow <> 0 do
              begin
                 Getclassname(hCurrentwindow,@szclass,255) ;
                   if Strpas(@szclass)='#32770'then
                   begin
                    if findwindowex(hCurrentwindow,0,'Tencent_QQToolBar',nil)>0 then
                        begin
                        Result:=hCurrentWindow;
                          Exit;
                        end;
                    end;
                hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);
              end;
              Result:=0;
            end;
            procedure TForm1.Timer1Timer(Sender: TObject);
            begin
               if getqqwnd=0 then exit;
                 SendMessage(getqqWnd,WM_command,13203,0);
                  SendMessage(getqqWnd,WM_command, 13200,0);
            end;



按F9运行一下程序吧!先设置一下时间间隔,间隔时间可以根据电脑性能来设置。再点击“开始”按钮开始看看效果如何。希望你能把星星早日变成太阳。

TOP

发新话题