风信子的专栏

流浪的阿Q

QQ与任意人聊天的办法

在Tencent的互动服务里面(http://imis.qq.com/)可以为你生成网页代码放到自己的网页中,让别人在网站上点一下就可以给你留言!
程序就是利用的这个生成的代码,直接在浏览器中输入
tencent://message/?uin=你想聊天的QQ号码&Site=im.qq.com&Menu=yes

 

.386
.model flat,stdcall  
option casemap
:none  
DlgProc proto 
:DWORD,:DWORD,:DWORD,:DWORD
include 
masm32includewindows.inc
include 
masm32includekernel32.inc
include 
masm32includeuser32.inc
include 
masm32includemasm32.inc
include 
masm32includeshell32.inc

includelib 
masm32libkernel32.lib
includelib 
masm32libuser32.lib
includelib 
masm32libmasm32.lib
includelib 
masm32libshell32.lib
.data?
QQnum db 
?
hInstance HINSTANCE 
?
swidth  dd 
?
sheight dd 
?
dwidth  dd 
?      
dheight dd 
?
rect    RECT 
<>
mystr db 
?
szTemp1 db 
?
szTemp2 db 
?
.data
str1 db 
"tencent://message/?uin=",0
str2 db 
"&Site=im.qq.com&Menu=yes",0
MainDialog db 
"MyDialog",0
szMutex db 
"zhangkesqqtalker",0
ErrorText db 
"Program already run...",0
ErrorTitle db 
"Warning!!!",0

.const 
BTNSTART equ 
1003
EDITNUM  equ 
1002
.code

start
:

Main proc
    invoke GetModuleHandle
,NULL
    mov hInstance
,eax
    invoke DialogBoxParam
,hInstance,addr MainDialog,NULL,addr DlgProc,NULL
    invoke ExitProcess
,0
Main endp
DlgProc proc hWnd
:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
    
.if uMsg==WM_INITDIALOG
        invoke CreateMutex
,NULL,FALSE,addr szMutex
        invoke GetLastError
        
.IF eax == ERROR_ALREADY_EXISTS
            invoke MessageBox
,NULL,addr ErrorText,addr ErrorTitle,MB_ICONWARNING
            invoke ExitProcess
,NULL
        
.ENDIF
        ;上面几行代码的作用的防止程序多开(即只能运行一个实例)
        invoke GetSystemMetrics
,SM_CXSCREEN     ;
        mov swidth
,eax                          ;
        invoke GetSystemMetrics
,SM_CYSCREEN     ;
        mov sheight
,eax                         ; 
        invoke GetWindowRect
,hWnd,addr rect     ;
        mov eax
,rect.right                      ;这几行是为下面invoke SetWindowPos做准备
        
sub eax,rect.left                       ; 
        mov dwidth
,eax                          ;
        
sub swidth,eax                          ;使窗体出现在屏幕中心
        mov eax
,rect.bottom                     ;
        
sub eax,rect.top                        ; 
        mov dheight
,eax                         ;其中不明白的地方看一下Platform SDK就可以了 
        
sub sheight,eax                         ;
        shr sheight
,1                           ;
        shr swidth
,1                            ;
        invoke SetWindowPos
,hWnd,HWND_NOTOPMOST,swidth,sheight,dwidth,dheight,SWP_SHOWWINDOW
    
.elseif uMsg==WM_COMMAND
        mov eax
,wParam
          
.if ax==BTNSTART
            invoke szCopy
,addr str1,addr mystr
              invoke GetDlgItemText
,hWnd,EDITNUM,addr QQnum,11
            invoke szCatStr
,addr mystr,addr QQnum
              invoke szCatStr
,addr mystr,addr str2
              invoke ShellExecute
,NULL,NULL,addr mystr,NULL,NULL,SW_HIDE
        
.endif
    
.elseif uMsg==WM_CLOSE
        invoke EndDialog
,hWnd,0
    
.else
        mov eax
,FALSE
          ret
    
.endif
    mov eax
,TRUE
    ret
DlgProc endp

end start
 
阅读更多
个人分类: 安全
想对作者说点什么? 我来说一句

任意QQ聊天

2018年01月29日 20KB 下载

和任意人聊天器

2008年04月06日 177B 下载

qq模拟聊天

2014年08月25日 880KB 下载

js实现的QQ在线聊天

2008年09月19日 4KB 下载

没有更多推荐了,返回首页

不良信息举报

QQ与任意人聊天的办法

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭