CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

100分--关于HOOK,我需要在程序A点击按钮1中的Click事件里,执行程序B[在线求助]

楼主vbstudio(vbstudio)2002-11-15 21:23:57 在 VC/MFC / 基础类 提问

我需要在程序A点击按钮1中的Click事件里,执行程序B,然后继续运行程序A  
   
  如何使用HOOK实现?  
   
   
  问题点数:100、回复次数:7Top

1 楼kingcom_xu(冷羽)回复于 2002-11-15 21:41:54 得分 0

用HOOK实现??  
   
  不用吧...Top

2 楼vbstudio(vbstudio)回复于 2002-11-15 21:44:27 得分 0

楼上兄弟,那用什么实现?  
  Top

3 楼kingcom_xu(冷羽)回复于 2002-11-15 21:46:20 得分 0

你知道hook是做什么用的么???Top

4 楼vbstudio(vbstudio)回复于 2002-11-15 21:56:23 得分 0

**************  
  注意:俺无程序的源代码,故想用钩子取的它的事件  
   
  如楼上兄弟有好的建议,一样给分!Top

5 楼kingcom_xu(冷羽)回复于 2002-11-15 22:02:09 得分 0

sorry...也怪你没说清楚问题...  
   
  Top

6 楼rivershan(阿门)回复于 2002-11-15 22:34:54 得分 0

ShellExecute  
  ShellExecuteEx  
  Top

7 楼primer(Mr.海洋)回复于 2002-11-15 23:59:43 得分 100

如果用HOOK来做的话,程序B可以作成DLL形式。程序A要用一个程序来调用,主要代码如下:  
  WinExec("A.exe",SW_SHOW);  
  hWnd   =     FindWindow();//得到程序A的窗口句柄  
  dwThreadId   =   GetWindowThreadProcessId(hWnd,NULL);  
  SetHook(dwThreadId);  
  PostMessage(hWnd,WM_NULL,0,0);  
   
  程序B的主要代码如下:  
   
  __declspec(dllimport)   BOOL   WINAPI   SetHook(DWORD   dwThreadId);//需要倒出该函数  
  BOOL   APIENTRY   DllMain(   HANDLE   hModule,    
                                                DWORD     ul_reason_for_call,    
                                                LPVOID   lpReserved  
    )  
  {  
  if(ul_reason_for_call   ==   DLL_PROCESS_ATTACH)  
  {  
  g_hinstDll   =   (HINSTANCE)hModule   ;  
  }  
          return   TRUE;  
  }  
  BOOL   WINAPI   SetHook(DWORD   dwThreadId)  
  {  
        hHook   =   SetWindowsHookEx   (WH_CALLWNDPROC,CallWndProc,g_hinstDll,dwThreadId);  
  }  
  LRESULT   WINAPI   CallWndProc(int   nCode,WPARAM   wParam,LPARAM   lParam)  
  {  
        MSG   *   pmsg   =   (MSG*)lParam;  
  DWORD   dwThreadId;  
  if(pmsg->message==WM_COMMAND&&pmsg->wParam==ID_BUTTON)    
                    {  
   
                          //要执行的代码  
                      }    
        return   (CallNextHookEx(hHook,nCode,wParam,lParam));    
  }  
  Top

相关问题

  • A程序怎么样把B程序的按钮给屏蔽、打开?
  • Hook如何给当前程序发送一个按钮消息
  • 程序A上有一个按钮,按下后启动程序B。问:如何在程序B中设断点进行调试???
  • 不用hook,能不能把其他应用程序的关闭按钮或最小化最大化按钮屏蔽掉??
  • 请教:我通过一个程序A向另一个程序B的对话框发送消息。在A中给B的取消按钮发送WM_LBUTTONDOWN消息,想把B关闭,可是不行,不知为什么。
  • 请看按钮奇多的程序
  • 如何给用appwizard创建的对话框程序加上最小化按钮?还有一个关于hook的问题......
  • 关于在B/S下的按钮问题
  • 如何实现当按下A按钮时,A按钮凹进去,按下B按钮时,A按钮弹起,B按钮凹进去!
  • 请教B/S程序高手

关键词

  • 执行
  • 代码
  • 程序
  • dwthreadid
  • sethook
  • callwndproc
  • 事件
  • hook
  • pmsg
  • wparam

得分解答快速导航

  • 帖主:vbstudio
  • primer

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo