我想把它发过来的消息自己显示。
听说netbios可以,钩子可以,但我不知道怎么做。
请您给我发个完整的程序好吗?分不多,我有分后给你们补上。
谢谢你们。
EMail:  [email protected]

解决方案 »

  1.   

    在“管理工具”里有一个“服务”的!
    你把net message 停止就行了!
      

  2.   

    修改注册表:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Messenger\
    下面有个Start键,值为2(十六进制)时,对应自动;值为3(十六进制)时,对应手动;值为4(十六进制)时,对应禁用。
      

  3.   

    feeboby(诺曼之路),有很多人成功过阿,但是好像他们很吝啬,不肯给代码.
      

  4.   

    听说可以自己写程序代替Messenger服务,谁有代码呢?
      

  5.   

    信使发送消息的函数WinExec()
    在接收的我就不知道了!
    怎么样扑获并不让那个消息显示?用自己的来显示?不知道!
    或者你可以用socket编程来实现计算机中的相互通信!
      

  6.   

    用SOCKT API来完成的.在VB中其实也不好做的.
    控件只提供了UDP和TCP两种协议.而信使服务是使用ICMP报文协议的.用VB的WINSOCK控件可以说是无能为力
      

  7.   

    我曾经用各种hook技术拦截过,好象是各种技术复合的。
      

  8.   

    feeboby(诺曼之路),您还记得是如何拦截的吗?   wh_cbt 能拦截到大部分窗口的创建,但拦截不到信使的.所以我无能为力啊.帮帮我好吗?
      

  9.   

    shell hook,我以前贴过这样的代码
    http://expert.csdn.net/Expert/topic/1390/1390169.xml?temp=.7783014
      

  10.   

    我以前拦的是
    ipfilterdriver这个服务。
    没有直接拦过messenger,不过,如果你可以通过分析包的特征,用ipfilterdriver这个服务来拦
      

  11.   

    关注啊,我们公司里面老是有人向整个网域net send一些无聊的东西,后来我就专门写了个批处理文件等着有人发这些东东的时候给他来个net send的死循环。不过,有的人很聪明,骚扰完了以后马上net stop messenger。于是,我一直在想制止他们的办法。高人们就不要小气了。
      

  12.   

    好像就是 alamb(把握今生)提到的这个东西呢。研究中
      

  13.   

    谢谢kingzai,不过不行啊,没有在窗口弹出来之前拦截到窗口的。
    我想把它发过来的消息自己显示,不允许那个弹出窗口啊。
    回复人: kingzai() ( ) 信誉:105  2003-2-17 11:42:35  得分:53 
     
      
    如果只是单纯的截获弹出来的消息,不需要这么复杂,用hook监控特定窗口即可。
    Application: 
    HMODULE  hModual  =  ::LoadLibrary("****Hook.dll"); 
    HOOKPROC  lpfnHook  =  (HOOKPROC)::GetProcAddress(hModual,  "ShellProc"); 
    HHOOK  hHook  =  ::SetWindowsHookEx(WH_SHELL  ,  lpfnHook,  hModual,  NULL); 
    DLL: 
    LRESULT  CALLBACK  ShellProc(int  nCode,  WPARAM  wParam,  LPARAM  lParam) 

    if(nCode  ==  HSHELL_WINDOWACTIVATED) 

    HWND  hWnd  =  HWND(wParam); 
    TCHAR  szWindowText[256]; 
    ::GetWindowText(hWnd,  szWindowText,  256); 
    //不同的Windows版本Message窗口的标题不一样,用Spy++处理,英文版的窗口标题为"Messenger  Service  ",注意空格! 
    if(strcmp(szWindowText,  "Messenger  Service  ")  ==  0) 

    TCHAR  szMessage[256]; 
    //  Get  Message  detail 
    HWND  hWndMessage  =  ::GetDlgItem(hWnd,  0xffff); 
    ::GetWindowText(hWndMessage,  szMessage,  256); 
    //  Close  the  message  window  by  simulate  click  the  close  button 
    ::SendMessage(hWnd,  WM_COMMAND,  2,  NULL); 
    return  1; 


      
     
      

  14.   

    alamb(把握今生) ( ) 信誉:100  2003-10-05 12:46:00  得分:0 
      CreateMailslot很不好的说。因为必须关闭Messenger服务才收得到的,所以非常不实用。
    很多国外的帖子提到了 Netbios解决了,这个问题估计只能用Netbios最理想的。
     
      

  15.   

    用你的软件代替messenger服务不好吗?
      

  16.   

    alamb(把握今生),你说的方法就是做好的方法,可是我不会啊。代码也找不到。