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;
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;