精华内容
下载资源
问答
  • 请求勾子after_request

    千次阅读 2018-06-24 23:26:54
    after_request:如果没有抛出错误,在每次请求后执行 接受一个参数:视图函数作出的响应在此函数中可以对响应值在返回之前做最后一步修改处理需要将参数中的响应在此参数中进行返回 # 在这里增加请求勾子(请求勾子...

     after_request:

    • 如果没有抛出错误,在每次请求后执行    
    • 接受一个参数:视图函数作出的响应
    • 在此函数中可以对响应值在返回之前做最后一步修改处理
    • 需要将参数中的响应在此参数中进行返回


        # 在这里增加请求勾子(请求勾子的作用:访问任何一个请求都会增加),在请求之后设置cookie(对返回值做进一步处理,增加随机值)
        # 我们无法判断用户第一次访问网站时,是哪一个页面,不能写死给某个网页
        # 需要对所有的请求都进行监听
    
        # csrf_token 会被缓存起来,多次调用,只会返回相同的token(没有被强制删除或没有过期)
        # 如果需要获取,可以使用session['csrf_token']:说明token会被扩展设置到session中(同步:cookie和redis里面的session都有)
        @app.after_request
        def after_request(response):
            token = generate_csrf()
            response.set_cookie('csrf_token', token)
            return response
           如上,如需要访问一个接口都需要做同样的操作(比如上面不管访问哪个页面,都需要设置csrf_token用于验证),就要用到请求勾子
    展开全文
  • 这几种勾子怎么用,最好有完整的代码演示, Public Const WH_CALLWNDPROC = 4 Public Const WH_CALLWNDPROCRET = 12 Public Const WH_CBT = 5 Public Const WH_DEBUG = 9 Public Const WH_FOREGROUNDIDLE =...
  • 什么是勾子

    千次阅读 2008-07-02 09:22:00
    什么是勾子2007-01-17 09:13 ---- 在Windows系统中,勾子(hook)是一种特殊的消息处理机制。勾子可以监视系统或进程中的各种事件消息, 截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的...
    什么是勾子
    2007-01-17 09:13
    ----   在Windows系统中,勾子(hook)是一种特殊的消息处理机制。勾子可以监视系统或进程中的各种事件消息,      截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的勾子,监视系统中特定事件的发生,完成特定的功能,      比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用勾子可以实现许多特殊而有用的功能。           勾子的类型        ----1.   按事件分类,有如下的几种常用类型        ----(1)   键盘勾子和低级键盘勾子可以监视各种键盘消息(WH_KEYBOARD)。             ----(2)   鼠标勾子和低级鼠标勾子可以监视各种鼠标消息(WH_MOUSE)。             ----(3)   外壳勾子可以监视各种Shell事件消息。比如启动和关闭应用程序(WH_SHELL)。             ----(4)   日志勾子可以记录从系统消息队列中取出的各种事件消息(WH_JOURNALRECORD,WH_JOURNALPLAYBACK)。             ----(5)   窗口过程勾子监视所有从系统消息队列发往目标窗口的消息(WH_CALLWNDPROC)。             ----(6)   监视已被目标窗口函数处理的消息(WH_CALLWNDPROCRE)。           ----(7)   接受与计算机训练有关的消息(WH_CBT).           ----(8)   应用程序前台空闲时调用的钩子(WH_FOREGROUNDIDLE).           ----(9)   监视加入到消息队列中的消(WH_GETMESSAGE).           ----(10)监视由对话框消息菜单或者滚动条输入事件产生的消息(WH_MSGFILTER).             此外,还有一些特定事件的勾子提供给我们使用如:WH_MOUSE_LL,WH_KEYBOARD_LL,WH_SYMSGFILTER等等.           ----2.   按使用范围分类,主要有线程勾子和系统勾子             ----(1)   线程勾子监视指定线程的事件消息。             ----(2)   系统勾子监视系统中的所有线程的事件消息。因为系统勾子会影响系统中所有的应用程序,所以勾子函数必须放在独立的动态链接      库(DLL)   中。这是系统勾子和线程勾子很大的不同之处。             ----   几点需要说明的地方:             ----(1)   如果对于同一事件(如鼠标消息)既安装了线程勾子又安装了系统勾子,那么系统会自动先调用线程勾子,然后调用系统勾子。             ----(2)   对同一事件消息可安装多个勾子处理过程,这些勾子处理过程形成了勾子链。当前勾子处理结束后应把勾子信息传递给下一个勾子函数。             ----(3)   勾子特别是系统勾子会消耗消息处理时间,降低系统性能。只有在必要的时候才安装勾子,在使用完毕后要及时卸载。             编写勾子程序        ----   编写勾子程序的步骤分为三步:定义勾子函数、安装勾子和卸载勾子。        ----1.定义勾子函数             ----勾子函数是一种特殊的回调函数。勾子监视的特定事件发生后,系统会调用勾子函数进行处理。不同事件的勾子函数的形式是各不相同的。下面以鼠标勾子函数举例说明勾子函数的原型:             LRESULT   CALLBACK   MouseProc      (     int   nCode,   WPARAM   wParam,   LPARAM   lParam)           ----参数wParam和   lParam包含鼠标消息的信息,比如鼠标位置、状态等。nCode包含有关消息本身的信息,比如是否从消息队列中移出。             ----   我们先在勾子函数中实现自定义的功能,然后调用函数   CallNextHookEx.把勾子信息传递给勾子链的下一个勾子函数。CallNextHookEx.的原型如下:             LRESULT   CallNextHookEx      (   HHOOK   hhk,     int   nCode,          WPARAM   wParam,   LPARAM   lParam   )           ----参数   hhk是勾子句柄。nCode、wParam和lParam   是勾子函数。下面的例子是一个简单的监视鼠标消息的勾子函数:             LRESULT   CALLBACK     MouseProc      (int   nCode,   WPARAM   wParam,   LPARAM   lParam)      {              //跟踪鼠标移动时的位置变化信息      if(wParam==WM_MOUSEMOVE   ||   wParam==                          WM_NCMOUSEMOVE)        {         //是鼠标移动消息      point=((MOUSEHOOKSTRUCT   *)      lParam)->pt;//取鼠标信息      TRACE2(“Position   is   :%d,Y:%d/n",point.x,point.y);      }      //传递勾子信息      return   CallNextHookEx(hHook,nCode,wParam,lParam);      }           ----2.安装勾子             ----在程序初始化的时候,调用函数SetWindowsHookEx安装勾子。其函数原型为:             HHOOK   SetWindowsHookEx      (   int   idHook,HOOKPROC   lpfn,        INSTANCE   hMod,DWORD   dwThreadId     )           ----参数idHook表示勾子类型,它是和勾子函数类型一一对应的。比如,WH_KEYBOARD表示安装的是键盘勾子,WH_MOUSE表示是鼠标勾子等等。             ----Lpfn是勾子函数的地址。             ----HMod是勾子函数所在的实例的句柄。对于线程勾子,该参数为NULL;对于系统勾子,该参数为勾子函数所在的DLL句柄。             ----   dwThreadId   指定勾子所监视的线程的线程号。对于全局勾子,该参数为NULL。             ----SetWindowsHookEx返回所安装的勾子句柄。             ----3.卸载勾子             ----   当不再使用勾子时,必须及时卸载。简单地调用函数   BOOL   UnhookWindowsHookEx(   HHOOK   hhk)即可。             ----   值得注意的是线程勾子和系统勾子的勾子函数的位置有很大的差别。线程勾子一般在当前线程或者当前线程派生的线程内,而系统勾子必须放在独立的动态链接库中,实现起来要麻烦一些。
    展开全文
  • Jenkins与git工具完成webhook勾子配置

    千次阅读 2019-01-24 10:07:59
    Jenkins与git工具完成webhook勾子配置 文章目录Jenkins与git工具完成webhook勾子配置前言jenkins配合gitblit实现webhook配置gitblit配置网站配置后台脚本配置重启gitblitjenkins配置开放端口测试jenkins配合github...

    Jenkins与git工具完成webhook勾子配置

    前言

    目标是:希望在代码被push时,jenkins会自动构建。
    webhook理解为勾子,是一个url,携带特定参数,一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式。Webhook在数据产生时立即发送数据,也就是你能实时收到数据。
    比如:http://192.168.2.32:8087/jenkins/git/notifyCommit?url=http://192.168.1.244:443/r/~summer/dongliweb.git是webhook访问了url.
    参考什么是webhook

    jenkins配合gitblit实现webhook配置

    gitblit配置

    网站配置

    登陆gitblit网站,选择一个项目,点击右上角的编辑按钮->点击左侧的receive按钮->post-receive 脚本下面选择jenkins并移动到右侧。效果如下
    在这里插入图片描述

    后台脚本配置

    gitblit的webhook并不是在网站上配置的,而是用grovvey脚本配置。
    找到gitblit的安装目录。比如我的在E:\gitblit-1.7.1\data\groovy,打开jenkins.groovy,这个就是配置jenkins的脚本文件。
    def jenkinsUrl = gitblit.getString(‘groovy.jenkinsServer’, ‘http://yourserver/jenkins’)修改成def jenkinsUrl = gitblit.getString(‘groovy.jenkinsServer’, ‘http://192.168.2.32:8087/jenkins’)http://192.168.2.32:8087是我的ip。

    重启gitblit

    快捷键ctrl+r->输入services.msc->找到gitblit服务并重启。
    至此gitblit配置完成。
    其实原理是在push代码后,gitblit发送http请求,url是http://192.168.2.32:8087/jenkins/git/notifyCommit?url=http://192.168.1.244:443/r/~summer/dongliweb.git。jenkins在收到请求后构建使用http://192.168.1.244:443/r/~summer/dongliweb.git仓库的项目

    jenkins配置

    假设你已经安装了Git Plugin 插件。
    在项目的构建触发器里选择轮询 SCM,后面的cron表达式不填表示无计划,因此只有被 post-commit 钩子触发后运行

    开放端口

    这步很重要,比如我的8087端口,不对外开放的话,jenkins接收不到webhook。

    在jenkins和gitblit不在一台机器上部署的情况下不通。

    至此jenkins配置完成。
    参考gitblit与jenkins集成推送构建通知

    测试

    通过浏览器访问http://192.168.2.32:8087/jenkins/git/notifyCommit?url=http://192.168.1.244:443/r/~summer/dongliweb.git即可测试

    jenkins配合github实现webhook配置

    参考Jenkins与Github集成 webhook配置
    我没试

    ---------------使用其它git工具后再更新--------------------------

    展开全文
  • windows键盘勾子的使用

    千次阅读 2016-08-15 20:39:42
     int idHook, // 安装勾子的类型 键盘勾子=WH_KEYBOARD  HOOKPROC lpfn, // KeyboardProc回调函数的地址 最重要的参数就是这个了  HINSTANCE hMod, // 函有回调函数动态链接库的句柄 一

    SetWindowsHookEx 原型如下

     

     HHOOKSetWindowsHookEx(

     int idHook,        // 安装勾子的类型 键盘勾子=WH_KEYBOARD

     HOOKPROC lpfn,     // KeyboardProc回调函数的地址  最重要的参数就是这个了

     HINSTANCE hMod,    // 函有回调函数动态链接库的句柄 一般用LoadLibrary来获取

                         //也可以用GetModuleHandle获取  histance

     DWORD dwThreadId  // 要安装勾子的线程IDGetWindowThreadProcessId,

                         // (可以为0即全局勾子,将DLL注入到所有进程的线程)

    );

     回调函数格式

     LRESULT CALLBACK KeyboardProc(

     int code,       // 这个值=HC_ACTION=0表示在wParam且lParam参数包含有关击键信息。

                      //假如这个值小于0(HC_ACTION)则回调函数返回值必需=CallNextHookEx返回值

                      //(也就是说必须调用一次CallNextHookEx,并把它的返回值给传给回调函数

     WPARAM wParam,  // 虚拟键码

     LPARAM lParam   // 击键信息资料 这个数的31位(bit)为0表示键按下,为1表示键释放

    );

     

     例子:  

        h:=FindWindow(nil,'Element Client'); 

        GameTid:=GetWindowThreadProcessId(h);

       SetWindowsHookEx(WH_KEYBOARD,@Keyproc,GetModuleHandle('???.dll'),GameTid);



    Function keyproc(icode,wp,lp:integer):DWORD;stdcall;   //键盘HOOK回调函数
    begin
      if (icode=HC_ACTION) then
                begin
                  if (wp=VK_HOME)and ((1 shl 31)and lp=0) then
                  begin
                 // MessageBox(0,'显示外挂','显示外挂',0);
                 if form1=nil then  Form1:=Tform1.Create(nil);
                    form1.Visible:=not form1.Visible;
                  end;
                end;
     keyProc:=CallNextHookEx(keyhhk,icode,wp,lp);
    end;
    Function installKeyProc():boolean;stdcall;
    var
     h:HWND;
     GameTid:THandle;
    begin
        Result:=false;
        h:=FindWindow(nil,'Element Client');
        if h=0 then begin Messagebox(0,'未找到游戏','error',0);exit; end;//如果游戏未打开则退出
        GameTid:=GetWindowThreadProcessId(h);
        keyhhk:=SetWindowsHookEx(WH_KEYBOARD,@Keyproc,GetModuleHandle('dllGame.dll'),GameTid);
        if keyhhk>0 then Result:=true;
    end;
    procedure DllEnterProc(reason:integer);
    begin
       case reason of
       windows.DLL_PROCESS_ATTACH: begin end;
       windows.DLL_PROCESS_DETACH: begin Form1.Free;form1:=nil; end;
       end;
    end;
    exports   //导出函数
      add,
      installKeyProc;


    begin
    //Messagebox(0,'Loading','error',0);
    dllProc:=@DllEnterProc;

    展开全文
  • 杨氏定理+勾子定理

    千次阅读 2019-08-06 20:56:06
    杨氏矩阵又叫杨氏图表,它是这样一个矩阵,满足条件: (1)如果格子(i,j)没有元素,则它右边和上边的相邻格子也一定没有元素。 (2)如果格子(i,j)有元素a[i][j],则...勾子定理 题意 将 11 到 NMNM 填入一个 N×MN×M...
  • 用VC++编写勾子程序

    千次阅读 2007-07-22 08:55:00
    什么是勾子 在Windows系统中,勾子(hook)是一种特殊的消息处理机制。勾子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的勾子,监视系统中特定事件的...
  • DELPHI实现键盘勾子

    2011-11-16 21:23:29
    //调用键盘钩子,屏蔽功能键 function keyHookProc(nCode: Integer; LWParam: WPARAM; LLParam: LPARAM): LRESULT;...//创建勾子 hHk:= SetWindowsHookEx(13, @keyHookProc, HInstance, 0); functi
  • 这篇技术文章英文原文来源于www.codeguru.com, 经过本人翻译和修改 术语约定: hook/hooking:勾子,勾挂,勾子技术,监控 进程标志:process token spying system :监控系统或监视...
  • Flask框架中的四种请求勾子

    千次阅读 2018-05-25 21:07:57
    在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接; 在请求开始时,根据需求进行权限校验; 在请求结束时,指定数据的交互格式; 为了让每个视图函数避免...
  • 在Windows系统中,勾子(hook)是一种特殊的消息处理机制。勾子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的勾子,监视系统中特定事件的发生,完成...
  • flask基础五之异常捕获和请求勾子

    千次阅读 2018-07-13 10:52:20
    请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接; 在请求开始时,根据需求进行权限校验; 在请求结束时,指定数据的交互格式; 为了让每个视图函数...
  • 开始,我学做了个全盘勾子,要把勾子放在DLL里才能用,还要留个接口,让执行[EXE]来调用该DLL,我想为什么要这么麻烦,不如直接让DLL加载时就自己动注册勾子吧,我就把注册勾子写在DLL的Initialize里,[我用的是MFC...
  • 以下类通过挂载勾子原理,实现将子控件鼠标消息发送给父控件。   调用: MousePreview mp=new MousePreview(pControl); //pControl为父控件 //启用勾子 mp.EnableHook();  ...
  • Visual svn 自动更新勾子问题

    千次阅读 2014-05-15 23:51:38
    1.服务器端调用勾子程序的代码在等待勾子程序结束,而勾子程序一直没有退出,没有退出的原因可能在于,那句命令里面的TortoiseProc.exe 是个 GUI 程序,在同步到 WWW 目录后,会弹出一个窗口,必须要点击某个按钮后...
  • 很多情况下使用SVN的时候绿色小会突然消失,这里给出解决方法:安装上图的指示点击确定即可!注意如果你是英文版对应的则是"default"、"shell"、"none"三个选项,选择shell选项确认即可转载自:...
  • 几点说明:(1)如果对于同一事件(如鼠标消息)既安装了线程勾子又安装了系统勾子,那么系统会自动先调用线程勾子,然后调用系统勾子。 (2)对同一事件消息可安装多个勾子处理过程,这些勾子处理过程形成了勾子链...
  • vue项目下props传进去的数据,生命周期勾子函数包括watch不触发的解决办法 @TOC 遇到的问题 在深层props过程中,props的数据传到了目标文件 但却没有触发数据更新及页面更新; watch代码如下: watch: { ...
  • (1)如果对于同一事件(如鼠标消息)既安装了线程勾子又安装了系统勾子,那么系统会自动先调用线程勾子,然后调用系统勾子。 (2)对同一事件消息可安装多个勾子处理过程,这些勾子处理过程形成了勾子链。当前勾子...
  • 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序...
  • 两分钟用C#搭建IE BHO勾子, 窃取密码

    万次阅读 热门讨论 2007-08-11 13:15:00
    如果图片无法显示. 请访问 ... 作者: 陈嘉, NetSecure Inc, Canada, 软件工程师微软在1997年正式退出Browser Helper Object (BHO), 使程序员能够更好的对IE进行二次开发和操作. 在通过编写BHO
  • jquery实现复选框打勾全选,其中一个复选框不中,则不全选。所有复选框全中则又全选。$('#allSelect').click(function() { if($(this).attr('checked')){ $("input[name='videoId']").attr("checked",...
  • c# 菜单前边的对勾实现方法

    千次阅读 2014-11-05 14:58:27
    c# IDEvs2010 只需把
  •  ---- 编写勾子程序的步骤分为三步:定义勾子函数、安装勾子和 对 勾子。     ----1.定义勾子函数     ----勾子函数是一种特殊的回调函数。勾子监视的特定事件发生后,系统会调用勾子函     数进行...
  • C#中的公共子类

    千次阅读 2006-04-09 12:51:00
    /*c#全局勾子类版本1.0实现对部分消息的全局勾子,使用HookStart加勾子,使用HookStop摘勾子.DLL下载地址 http://www.xdbook.com/blog/hookLib.dllHook hook = new Hook(Hook.WH_MOUST_LL);hook.HookProcedure +=new ...
  • git submodule添加模块(仓库)

    千次阅读 2019-12-07 21:37:32
    在父仓库中添加仓库 创建父仓库(parent) clone地址:: https://gitee.com/xxx/parent.git 创建仓库(child1) clone地址:: https://gitee.com/xxx/child1.git ...创建仓库(child2) ...注: 创建仓库的时候...
  • Windows10安装Linux系统Ubuntu

    万次阅读 多人点赞 2017-05-14 13:12:29
    相信大部分同学都跟我一样都是使用Windows...在Windows10后,我们再也不用那么麻烦了,因为可以直接在Windows上安装系统。 首先我们要打开Windows功能 在这里把打上 然后打开设置》》更新和安全》》针对开发

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,302
精华内容 13,320
关键字:

勾子的意思