怎么捕获net send发送过来的消息呢?我不要它出现那个信使服务那个窗口啊... 我想把它发过来的消息自己显示。听说netbios可以,钩子可以,但我不知道怎么做。请您给我发个完整的程序好吗?分不多,我有分后给你们补上。谢谢你们。EMail: [email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在“管理工具”里有一个“服务”的!你把net message 停止就行了! 修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Messenger\下面有个Start键,值为2(十六进制)时,对应自动;值为3(十六进制)时,对应手动;值为4(十六进制)时,对应禁用。 feeboby(诺曼之路),有很多人成功过阿,但是好像他们很吝啬,不肯给代码. 听说可以自己写程序代替Messenger服务,谁有代码呢? 信使发送消息的函数WinExec()在接收的我就不知道了!怎么样扑获并不让那个消息显示?用自己的来显示?不知道!或者你可以用socket编程来实现计算机中的相互通信! 用SOCKT API来完成的.在VB中其实也不好做的.控件只提供了UDP和TCP两种协议.而信使服务是使用ICMP报文协议的.用VB的WINSOCK控件可以说是无能为力 我曾经用各种hook技术拦截过,好象是各种技术复合的。 feeboby(诺曼之路),您还记得是如何拦截的吗? wh_cbt 能拦截到大部分窗口的创建,但拦截不到信使的.所以我无能为力啊.帮帮我好吗? shell hook,我以前贴过这样的代码http://expert.csdn.net/Expert/topic/1390/1390169.xml?temp=.7783014 我以前拦的是ipfilterdriver这个服务。没有直接拦过messenger,不过,如果你可以通过分析包的特征,用ipfilterdriver这个服务来拦 关注啊,我们公司里面老是有人向整个网域net send一些无聊的东西,后来我就专门写了个批处理文件等着有人发这些东东的时候给他来个net send的死循环。不过,有的人很聪明,骚扰完了以后马上net stop messenger。于是,我一直在想制止他们的办法。高人们就不要小气了。 好像就是 alamb(把握今生)提到的这个东西呢。研究中 谢谢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; } } alamb(把握今生) ( ) 信誉:100 2003-10-05 12:46:00 得分:0 CreateMailslot很不好的说。因为必须关闭Messenger服务才收得到的,所以非常不实用。很多国外的帖子提到了 Netbios解决了,这个问题估计只能用Netbios最理想的。 用你的软件代替messenger服务不好吗? alamb(把握今生),你说的方法就是做好的方法,可是我不会啊。代码也找不到。 关于安装程序自动安装的几个问题。。 CListBox(CTransparentListBox) 对象,每条Items 条目有多列,如何在一行中显示多列 一VC/MFC毕业生的困惑 如何编写象“模拟精灵、按键精灵”等键盘模拟软件? MFC里有没有关于密码的库函数 ATL中组件输入、输出参数,以及组件调用的问题(大虾帮帮菜鸟) 气死我了,我怎么连个二重循环也通不过啊 图像YUV,R,Gr,Gb,B与明暗度的关系 MFC CListCtl用法 哪位高手能告诉我如何解决这个TOOLBAR的按钮的显示图片问题???? ATL标签控件问题 我想做vc!
你把net message 停止就行了!
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Messenger\
下面有个Start键,值为2(十六进制)时,对应自动;值为3(十六进制)时,对应手动;值为4(十六进制)时,对应禁用。
在接收的我就不知道了!
怎么样扑获并不让那个消息显示?用自己的来显示?不知道!
或者你可以用socket编程来实现计算机中的相互通信!
控件只提供了UDP和TCP两种协议.而信使服务是使用ICMP报文协议的.用VB的WINSOCK控件可以说是无能为力
http://expert.csdn.net/Expert/topic/1390/1390169.xml?temp=.7783014
ipfilterdriver这个服务。
没有直接拦过messenger,不过,如果你可以通过分析包的特征,用ipfilterdriver这个服务来拦
我想把它发过来的消息自己显示,不允许那个弹出窗口啊。
回复人: 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;
}
}
CreateMailslot很不好的说。因为必须关闭Messenger服务才收得到的,所以非常不实用。
很多国外的帖子提到了 Netbios解决了,这个问题估计只能用Netbios最理想的。