KILL
:)     =(

解决方案 »

  1.   

    中间过程可以省略,QQ据说是delphi做的,那么你所说的估计会由delphi自动设置
    不需要自己加代码,不过我不知道QQ加了没
      

  2.   

    算了,看来我是帮不了你了,不过kill我还是会的
    你想用刀还是大鸟,还是M4或是AK47???
      

  3.   

    给你一段代码,希望能给你些许帮助:
    实际上目前所有的oicq探测方法都一样,发送一个oicq消息给对方,凭借oicq 
    的返回信息来判断对方的oicq号码,具体的delphi实现如下: 
    nmudp1是ics控件包的udp控件。 nmudp1.reportlevel := status_basic; 
    nmudp1.remotehost := edit1.text; 
    nmudp1.remoteport := 4000; udptmpstr :=#$02 +#$03 +#$0a +#$00 +#$78 +#13 +#$a 
    + '88888' +#$1f +#$30 +#$1f + #$33 + #$39 +#$1f 
    +formatdatetime('yyyy-mm-dd',now) 
    +#$1f 
    +formatdatetime('hh:mm:ss',now) 
    +#$1f 
    + '你正在被某位朋友查询。他使用了追捕这个工具软件(http://www.zhuibu.com/)进行探测,此oicq号码已经被反馈给对方。' 
    + '信息所提示的oicq号码为虚假号码,但可以即时回复。' + #$03; if oicqcheck.checked then begin 
    for sendudpnum:=1 to 10 do begin 
    mystream := tmemorystream.create; 
    try 
    mystream.write(udptmpstr[1], length(udptmpstr)); 
    nmudp1.sendstream(mystream); 
    finally 
    mystream.free; 
    end; 
    end; 
    end; 追捕是怎样得到检测结果的呢?下面是具体实现的程序段: 
    mystream := tmemorystream.create; 
    try 
    nmudp1.readstream(mystream); 
    setlength(tmpstr,numberbytes); 
    mystream.read(tmpstr[1],numberbytes); 
    finally 
    mystream.free; 
    end; 
    j := pos( #$02 +#$02 +#$00 +#$00 , tmpstr); 
    k := pos( #$02 +#$03 +#$00 +#$00 , tmpstr); 
    m := pos( #$02 +#$03 +#$0a +#$00 , tmpstr); 
    o := pos( #$02 +#$03 +#$02 +#$00 , tmpstr); if (j=1) or (k=1) or (m=1) or (o=1) then begin 
    j := pos( #$02 +#$02 +#$00 +#$00 + 'y', tmpstr); 
    k := pos( #$02 +#$03 +#$00 +#$00 + 'y', tmpstr); 
    m := pos( #$02 +#$03 +#$0a +#$00 + 'y', tmpstr); 
    o := pos( #$02 +#$03 +#$02 +#$00 + 'y', tmpstr); 
    oicqver := '未知'; 
    if j=1 then oicqver := '425'; 
    if k=1 then oicqver := '725'; 
    if m=1 then oicqver := '820'; 
    if o=1 then oicqver := '810'; 
    if (j=1) or (k=1) or (m=1) or (o=1) then begin 
    tmps := ''; 
    for j:=1 to length(tmpstr) do begin 
    if tmpstr[j] in ['0'..'9'] then tmps := tmps + tmpstr[j]; 
    end; 
    if tmps='0' then label2.caption := 'oicq处于关闭状态,版本:'+ oicqver 
    else label2.caption :='oicq号码为'+ tmps + ',版本:'+ oicqver; 
    end; j := pos( #$02 +#$02 +#$00 +#$00 + 'x', tmpstr); 
    k := pos( #$02 +#$03 +#$00 +#$00 + 'x', tmpstr); 
    m := pos( #$02 +#$03 +#$0a +#$00 + 'x', tmpstr); 
    o := pos( #$02 +#$03 +#$02 +#$00 + 'x', tmpstr); 
    if (j=1) or (k=1) or (m=1) or (o=1) then begin 
    j := 8; 
    tmpoicqnum := ''; 
    while tmpstr[j]<>#$1f do begin 
    tmpoicqnum :=tmpoicqnum + tmpstr[j]; 
    inc(j); 
    end; 
    j := j + 6; 
    while tmpstr[j]<>#$1f do begin 
    inc(j); 
    end; 
    j := j + 1; 
    while tmpstr[j]<>#$1f do begin 
    inc(j); 
    end; 
    j := j + 1; 
    tmpoicqmsg := ''; 
    while tmpstr[j]<>#$03 do begin 
    tmpoicqmsg := tmpoicqmsg + tmpstr[j]; 
    inc(j); 
    end; 
    if tmpoicqmsg<>lastoicqmessage then begin 
    lastoicqmessage := tmpoicqmsg; 
    messagebox(form1.handle, pchar('oicq用户' + tmpoicqnum + '对你的探测作出回应:' + #$0d + #$0a + tmpoicqmsg), '警告信息', mb_iconwarning +mb_ok); 
    end; 
    end; 
    exit; 
    end;