QQ非会员怎么突破会员限制进行QQ表情涂鸦
- 提问者网友:無理詩人
- 2021-04-13 17:16
- 五星知识达人网友:思契十里
- 2021-04-13 17:43
始打开的时候会判断一下当前
用户是否为会员,如果不是的话,那么很多项目则不可用,我们可以很轻易的想到一个API函数
EnableWindow函数可以解除那些Enable
为false的控件(只要知道他的消息句柄则可)。现在我们先假定一下,QQ表情编辑在编辑好了之后,用
户点完成不会向腾讯服务器发送
询问的(想想他应该不会抠门到这个程度吧!搞个编辑也要发个会员验证),先用Spy++一下,可以轻易
的找到那些Enable为false的消息句柄,那 么现在就好办了,直接使用enableWindow(Handle),看一下则
解除禁止了。很简单。然后测试一下效果,果然可以。呵呵。那么我们只用写个 代码来找句柄,然后在
Enable他,则完了。
{代码中使用了Raize控件包,如果有兴趣的话,自己写一个HOOK挂到QQ进程,这样就不用每次打开都去点
一下解除禁止了。}
代码如下:
DelphiCode: unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RzCommon,RzLabel, RzButton, ExtCtrls, RzPanel;
Const
WM_DESTROYPN = WM_USER + 100;
type
TRzPanel = Class(RzPanel.TRzPanel)
protected
Procedure WndProc(Var Msg: TMessage);override;
public
Constructor Create(AOwner: TComponent);override;
end;
TForm1 = class(TForm)
RzLabel1: TRzLabel;
btn1: TRzButton;
procedure btn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
BegPos: TPoint;
EdtHandle: THandle;
Pn: TRzPanel;
procedure DestroyPn(Var Msg: TMessage);message WM_DESTROYPN;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
HsFree: Boolean=false;
HsJieChu: boolean=false;
{$R *.dfm}
procedure SetControlOwner(Component: TComponent;NewOwner: TComponent);
var
tempOwner: ^integer;
begin
tempOwner := @(integer(Component.Owner));
tempOwner^ := integer(NewOwner);
end;
procedure EnabledQQEdit;
procedure BlHandle(ParentHandle: THandle);
var
backHwnd,tempHwnd:hWnd;
begin
backHwnd:=Getwindow(ParentHandle,GW_CHILD);
while backHwnd<>0 do
begin
EnableWindow(backHwnd,true);
tempHwnd := backHwnd;
BlHandle(tempHwnd);
backhwnd:=Getwindow(backhwnd,GW_HWNDNEXT);
end;
end;
var
FrmHandle: THandle;
begin
FrmHandle := FindWindow('#32770','编辑涂鸦表情');
if FrmHandle <> 0 then
begin
SendMessage(FrmHandle,wm_settext,0,integer(Pchar('不得闲QQ表情编辑解禁!作者:不得闲!
QQ: 75492895')));
Application.MessageBox('QQ表情编辑工具解除禁止成功!','消息',64);
SetForegroundWindow(FrmHandle);
BlHandle(FrmHandle);
end
else
Application.MessageBox('您没有打开QQ表情编辑工具!','消息',64);
end;
procedure EnabledQQEdit1;
var
FrmHandle,ModHandle: THandle;
rec: TRect;
Pn: TRzPanel;
OldWidth: integer;
procedure BlHandle(ParentHandle: THandle);
var
backHwnd,tempHwnd:hWnd;
begin
backHwnd:=Getwindow(ParentHandle,GW_CHILD);
while backHwnd<>0 do
begin
EnableWindow(backHwnd,true);
tempHwnd := backHwnd;
BlHandle(tempHwnd);
backhwnd:=Getwindow(backhwnd,GW_HWNDNEXT);
end;
end;
begin
FrmHandle := FindWindow('#32770','编辑涂鸦表情');
if (FrmHandle <> 0) and (not HsJieChu) then
begin
SendMessage(FrmHandle,wm_settext,0,integer(Pchar('不得闲QQ表情编辑解禁!作者:不得闲!
QQ: 75492895')));
Form1.EdtHandle := FrmHandle;
GetWindowRect(FrmHandle,Rec);
Form1.BegPos.X := Rec.Right - Rec.Left;
Form1.BegPos.Y := Rec.Bottom - Rec.Top;
OldWidth := Rec.Right - Rec.Left + 2;
SetWindowPos(FrmHandle,0,0,0,48 + OldWidth,rec.Bottom - rec.Top,6);
Pn := TRzPanel.Create(nil);
HsFree := false;
Pn.Parent := Form1;
Form1.Pn := Pn;
Pn.Top := 25;
SetParent(Pn.Handle,FrmHandle);
SetControlOwner(Pn,Pn.Parent);
FrmHandle := FindWindowEx(FrmHandle,0,'#32770','');
if FrmHandle <> 0 then
begin
GetWindowRect(FrmHandle,Rec);
Pn.Left := OldWidth - 10;
Pn.Height := rec.Bottom - rec.Top - 34;
Pn.Width := 55;
SetWindowPos(FrmHandle,0,0,0,OldWidth-2,rec.Bottom - rec.Top,6);
ModHandle := FindWindowEx(FrmHandle,0,'Edit','');
if ModHandle <> 0 then
EnableWindow(ModHandle,true);
ModHandle := FindWindowEx(FrmHandle,0,'Static','');
if ModHandle <> 0 then
EnableWindow(ModHandle,True);
ModHandle := FindWindowEx(FrmHandle,0,'Button','完成');
if ModHandle <> 0 then
EnableWindow(ModHandle,true);
ModHandle := FindWindowEx(FrmHandle,0,'Static','您还不是会员,开通QQ会员即可使用');
if ModHandle <> 0 then
SetWindowText(ModHandle,'不得闲QQ表情编辑解禁工具1.0');
Application.MessageBox('QQ表情编辑工具解除禁止成功!','消息',64);
SetForegroundWindow(FrmHandle);
HsJieChu := true;
end;
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
EnabledQQEdit1
end;
procedure TForm1.DestroyPn(var Msg: TMessage);
begin
pn := TRzPanel(Msg.WParam);
if not HsFree then
begin
HsFree := true;
HsJieChu := false;
FreeAndNil(pn);
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if not HsFree then
begin
HsFree := true;
Pn.Free;
SetWindowPos(EdtHandle,0,0,0,BegPos.X,BegPos.Y,6);
end;
end;
{ TRzPanel }
constructor TRzPanel.Create(AOwner: TComponent);
var
Rz1,Rz2: TRzLabel;
begin
inherited Create(AOwner);
HsFree := false;
Rz1 := TRzLabel.Create(self);
Rz1.Parent := self;
Rz1.Caption :='欢'#13#10'迎'#13#10'使'#13#10'用'#13#10'QQ'#13#10'表'#13#10'情'#13#10'编
'#13#10'辑'#13#10'禁'#13#10'止'#13#10'解'#13#10'除'#13#10'工'#13#10'具 '#13#10'V1';
Rz1.Align := AlTOp;
Rz1.AutoSize := false;
Rz1.Alignment := taCenter;
Rz1.TextStyle := tsRaised;
Rz1.Height := 196;
Rz1.Font.Name := '宋体';
Rz1.Font.Charset := GB2312_CHARSET;
Rz1.Font.Size := 9;
Rz1.Transparent := true;
Rz1.Font.Color := clMaroon;
Rz1.Font.Style := [fsbold];
Width := 57;
Rz2 := TRzLabel.Create(self);
Rz2.Parent := self;
Rz2.Align := AlBottom;
Rz2.AutoSize := false;
Rz2.Caption := '作者:'#13#10' 不得闲'#13#10'QQ:'#13#10'75492895';
Rz2.Height := 57;
Rz2.Font.Assign(Rz1.Font);
Rz2.TextStyle := tsRaised;
Rz2.Transparent := true;
VisualStyle := vsGradient;
GradientColorStyle := gcsCustom;
GradientColorStart := $00FFAA55;
GradientColorStop := $00FFAA55;
BorderOuter := fsNone;
end;
procedure TRzPanel.WndProc(var Msg: TMessage);
begin
if Msg.Msg = WM_DESTROY then
SendMessage(Form1.Handle,WM_DESTROYPN,integer(self),0);
Inherited
end;
end.
- 1楼网友:北城痞子
- 2021-04-13 20:37
- 2楼网友:梦中风几里
- 2021-04-13 19:08
- 3楼网友:由着我着迷
- 2021-04-13 18:52
- 4楼网友:狂恋
- 2021-04-13 18:26