AxAcroPDF吞键,如何让它停止?

2023-12-07

AxAcroPDF一获得焦点就会吞掉所有与按键相关的事件,包括快捷键、按键等。我添加了消息过滤器,它也没有收到任何与按键相关的消息。它是一个 COM 组件,这可能相关吗?

有什么办法可以在控制者开始吞下它们之前抓住它们吗?


Hans 是正确的,Acrobat Reader 会生成两个子 AcroRd32 进程,您无法从托管代码中直接访问它们。

我已经对此进行了实验,您有三个可行的选择:

  1. 您可以创建一个全局系统钩子,然后查找并过滤/响应发送到您的子 AcroRd32 窗口的 WM_SETFOCUS 消息。您可以通过使用包装器库在 C# 中完成其中一些任务,如下所示:http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

    您还需要确定正确的进程,因为您的应用程序可能有多个实例或 AcroRd32 的其他实例。这是最具确定性的解决方案,但由于您的应用程序现在将过滤发送到现有每个窗口的消息,因此我通常不推荐这种方法,因为这样您的程序可能会对系统稳定性产生负面影响。

  2. Find an 备用 PDF 查看控件。有关一些商业组件,请参阅此答案:.net PDF 查看器控件,或者自己推出:http://www.codeproject.com/KB/applications/PDFViewerControl.aspx

  3. Find an 可接受的黑客攻击。根据您的应用程序需要的健壮程度,如下代码可能合适(它适合我的情况):

    DateTime _lastRenav = DateTime.MinValue;
    
    public Form1()
    {
        InitializeComponent();
    
        listBox1.LostFocus += new EventHandler(listBox1_LostFocus);
    }
    
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        axAcroPDF1.src = "sample.pdf";  //this will cause adobe to take away the focus
        _lastRenav = DateTime.Now;
    }
    
    void listBox1_LostFocus(object sender, EventArgs e)
    {
        //restores focus if it were the result of a listbox navigation
        if ((DateTime.Now - _lastRenav).TotalSeconds < 1)
            listBox1.Focus();
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AxAcroPDF吞键,如何让它停止? 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 这个可变参数模板示例有什么问题?

    基类是 include
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke

随机推荐

  • 如何在 Javascript 中过滤对象数组

    我正在尝试在 Javascript 中创建一个函数 这将允许我过滤不同候选人拥有的技能 我被告知这可以在 Javascript 中完成 名为 filterCandidateBySkill 的函数是我想要过滤候选人的地方技能 但我看过这个 并
  • qt 类中的服务器线程(需要互斥锁?)

    我制作了这个服务器类 它在新连接到来时启动一个线程 它在某些情况下工作正常 但不是很稳定 我正在尝试解决它的问题 我的调试器告诉我一些有关 qmutex 的信息 如果有人能发现问题 蒂 它通过信号和槽与父级连接并获取数据 这是标题 ifnd
  • 使用自定义字体在标签中绘制文本时参数无效

    我有带有自定义字体和计时器的标签 它们会更改标签中的值 我的应用程序开始最小化 当我显示应用程序时 有时会显示异常 并且标签中的文本不是红十字 在这里我尝试调用异步方法来更改标签文本 private void timer1 Tick obj
  • 使用 Cython 中的 Scipy cython_blas 接口不适用于向量 Mx1 1xN

    这必须处理类似的问题 使用 SciPy 接口和 Cython 直接调用 BLAS LAPACK但有所不同 因为我在这里使用 SciPy 示例中的实际代码 test dgemm https github com scipy scipy blo
  • 如何集成基于 angularjs 和 java jaas 的身份验证?

    我有一个 web 应用程序 前端有 angularJS 后端有 Java Angular 通过 Restful Web 服务与 Java 后端进行通信 通过 HTTP 消费和发送 JSON 我需要为此应用程序构建身份验证机制 并且想知道最好
  • 如何将谓词构建器与 linq2sql 和 OR 运算符一起使用

    我有两个表 TABLE1 TABLE2 我知道是唯一的 它们分别具有一对多关系 并且两个表的 ID 列之间都有外键 Using linq2sql我正在尝试选择所有TABLE1条目使得它们对应的TABLE2value 在我传递的列表中至少包含
  • 64 位随机种子

    随着 iPhone 5S 更新 我希望我的应用程序能够支持新的 64 位处理器 但是 如果将较大的数据类型转换为较小的数据类型 如将 long 转换为 int 的情况 则使用 64 位可能会导致截断 大多数时候 只需使用更大的数据类型就可以
  • 设置较长时间(即多分钟)的计时器

    我想将 firebase auth 与 React Native 结合使用Login and Signup但我收到一个黄色错误 在 Android 上设置较长时间 即多分钟 的计时器是一个性能和正确性问题 因为它会使计时器模块保持唤醒状态
  • 使背景位置可变

    我正在使用这段代码 document getElementById a1 style backgroundPosition 0px 0px 它工作得很好 但是有没有办法用 javascript 来制作定位变量 像这样 document ge
  • 反汇编托管代码问题

    我正在使用 Windbg 来反汇编托管代码 用 C 编写 控制台应用程序 U来自 sos dll 的命令 我在使用时发现 U要反汇编托管函数 反汇编的 IL 代码仅包含我所做的函数调用 其余部分 非函数调用 C 代码 例如a a 2 and
  • EKEvent接受活动邀请

    我想知道如何设置接受 可能 拒绝参与者状态EKEvent已邀请哪个当前用户 我可以检查参与者集但是EKEvent没有找到任何可以设置其状态的内容 每个 EKParticipant 都会维护状态 而不是在 EKEvent 本身上 但您无法以编
  • 使用多个 isin 子句的 pandas 索引

    如果我想同时对多个列进行 is in 测试 我可以这样做 gt gt gt from pandas import DataFrame gt gt gt df DataFrame A 1 2 3 B 1 4 7 C 10 12 18 gt g
  • 我可以将 MPI 与共享内存一起使用吗

    我编写了一个用于高度并行化执行的模拟软件 使用 MPI 进行节点间并行化 使用线程进行节点内并行化 以尽可能使用共享内存来减少内存占用 最大的数据结构大多是只读的 因此我可以轻松管理线程安全 尽管我的程序 最终 运行良好 但我正在重新思考这
  • 单击时平滑滚动到特定 div

    我想做的是 如果您单击按钮 它就会向下滚动 平滑 到页面上的特定 div 我需要的是 如果您单击按钮 它会平滑滚动到 div 第二个 first width 100 height 1000px background ccc second w
  • 将Texture2D 转换为OpenCV Mat?

    有一个post关于转换 OpenCVcv Mat to Texture2D在 Unity 中 我提供了一个效果很好的答案 现在 我正在尝试做相反的事情 但已经坚持了几个小时了 我想转换Unity的Texture2D到 OpenCVcv Ma
  • 在 IE 中单击无法访问带有 z-index 的文本输入

    我有一个无边框文本输入和一个悬停在其他图形上方的图像输入 你可以在这里看到它 http www wwmlaw dreamhosters com index php 您可以在 IE6 和 IE8 中按 Tab 键进入文本输入 然后它会接受输入
  • XmlReader - 如何在没有 System.OutOfMemoryException 的情况下读取元素中的很长字符串

    我必须读取从 API 返回的 XML 元素中的文件内容 Base64 字符串 我的问题是这个字符串可能很长 具体取决于文件大小 起初 我用XmlDocument读取 XML 现在我用XmlReader避免System OutOfMemory
  • 使用 wifi 发现移动设备

    我想通过使用两个 检查点 A 和 B 来跟踪步行街上的人 携带移动设备 我计划在每个检查点放置带有 Android IOS 或 Linux 的移动设备或上网本 并记录一个 ID 这样我就可以知道有多少人从 A 步行到 B 我知道我可以使用蓝
  • HTML 选择选项中的 Foreach php 函数

    我是这个论坛的新手 刚刚开始用 php 编码 需要一些帮助 我有以下代码
  • AxAcroPDF吞键,如何让它停止?

    AxAcroPDF一获得焦点就会吞掉所有与按键相关的事件 包括快捷键 按键等 我添加了消息过滤器 它也没有收到任何与按键相关的消息 它是一个 COM 组件 这可能相关吗 有什么办法可以在控制者开始吞下它们之前抓住它们吗 Hans 是正确的