登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 首页 >> SoftHub关联区 >> SoftHub关联区 >> 主题: [win10api]delphi 版 ChangeWindowMessageFilter    [最新]
[win10api]delphi 版 ChangeWindowMessageFilter
clq
浏览(0) - 2019-05-15 00:20:15 发表 编辑
经纬度拾取

关键字

[目前已存在于分组:]

关键字:

[2019-07-20 16:19:25 最后更新]
[win10api]delphi 版 ChangeWindowMessageFilter

动态装载版本,函数不存在的 xp 系统下也不会出错,来自网友,修改了些参数同支持 32位(delphi7)/64位(开源la...)

unit send_message_win10;

////来自 la 64 位代码//{$mode objfpc}{$H+}

interface

uses
  windows,
  Classes, SysUtils;

function AllowMeesageForVistaAbove(uMessageID: THandle; bAllow: Boolean): Boolean; 

implementation

type
  TChangeWindowMessageFilter = function(msg: UINT; dwFlag: DWORD): BOOL; stdcall;

var
   //ChangeWindowMessageFilter:function(msg: UINT; dwFlag: DWORD): BOOL; stdcall;
   ChangeWindowMessageFilter:TChangeWindowMessageFilter;

//高权限用户要接收低权限用户的消息,在 vista 后必须加上 ChangeWindowMessageFilter 调用
//register global messages for vista win7.
function AllowMeesageForVistaAbove(uMessageID: THandle; bAllow: Boolean): Boolean;
const
  NULL = 0;
var
   bResult:Boolean;
   hUserMod:HMODULE;
begin
    bResult:=False;
    hUserMod:=Null;
    //vista and later
    hUserMod := LoadLibrary(PChar('user32.dll'));
    if( NULL=hUserMod ) then
    begin
      Result:=FALSE;
      Exit;
    end;
    ChangeWindowMessageFilter := TChangeWindowMessageFilter(GetProcAddress(hUserMod,'ChangeWindowMessageFilter'));
    if not Assigned(ChangeWindowMessageFilter) then
    begin
        Result:= FALSE;
        Exit;
    end;
    if bAllow then
    bResult:= ChangeWindowMessageFilter(uMessageID,  1  )
    else
      bResult:=ChangeWindowMessageFilter(uMessageID, 2);//MSGFLT_ADD: 1, MSGFLT_REMOVE: 2


    if( NULL <> hUserMod )   then
    begin
        FreeLibrary( hUserMod );
    end;


    result:= bResult;


end;


end.





guest  2019-07-20 16:19:25 发表 编辑

编译报错,windows里不包含ChangeWindowMessageFilterEx函数
想问一下这个函数到底定义在哪里了

clq  2019-07-21 14:47:28 发表 编辑

win7 以上的 user32.dll 中,请仔细看下上面的源码。

具体报的什么错误?



总数:2 页次:1/1 首页 尾页  
总数:2 页次:1/1 首页 尾页  


该采集也在以下书单中
win10 新 api 更多
win10api 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2017 clq, All Rights Reserved
CLQ工作室 版权所有