我想扩展一些现有应用程序的拖放行为,我想知道是否有任何方法可以通过监视应用程序的消息循环并注入我的拖放支持或拖放行为的更改自己的消息。
它还可以监视执行粘贴操作的时间,基本上是当控件仅支持粘贴文本并粘贴图像时创建自定义行为。
我认为Detours可能是我最好的选择,但有一个问题是我必须为我想要扩展的每个应用编写自定义代码。如果只考虑Windows设计的可扩展性!
另一方面,有没有支持这种性质的可扩展性的操作系统?
答案 0 :(得分:0)
好吧,从应用程序设计师的角度考虑这一点。如果您编写了一个应用程序,您是否希望用户能够将内容注入到您的应用程序中(更重要的是,您是否希望招致无能为力的用户支持/收入头疼,然后责备您)?每个应用程序的拖放基础架构都是专门为应用程序编写的,不允许您将任何内容丢弃到它上面(当您将某些东西拖到一个根本无法处理的应用程序上时,可能会导致崩溃和各种其他令人讨厌的行为) 。像这样的东西很难做到这一点。
它是可以做的,但它需要做很多工作:你需要获取你要删除的东西的窗口句柄,然后用你自己的窗口替换该窗口的消息处理程序。当然,这充满了危险,因为你要么必须自己复制该窗口的所有现有功能,要么冒着应用程序无法正常工作的风险。
答案 1 :(得分:0)
如果您愿意在加载应用程序时进行内存中的操作,那么您可能会想到这一点。
但是如果你正在寻找一种简单的方法来将你想要的代码注入到另一个窗口的消息泵中,你就不会找到它。完成这样的事情所需的技能是强大的(除非有人将所有这些包装在我不知道的应用程序/库中,但我对此表示怀疑)。它就像剪贴板挂钩,写得很大:它不受欢迎,有很多陷阱,如果你不真的知道你是什么,你很可能会给你的系统带来很大的不稳定性做。
答案 2 :(得分:0)
这真的太糟糕了。我想有时候应用程序还不存在的原因。基本上我要做的是通过挂钩粘贴图像的过程,简化向使用各种应用程序(主要是Web浏览器文本表单,但也可以在终端窗口中编辑的任何时候)发送图像链接的过程。文本上下文,在后台上传图像,并通过一个操作将网址粘贴到图像上传的位置。
编辑:我想更简单的解决方案是创建一个新的键盘组合,在我的应用程序到达任何其他应用程序之前将其挂钩。我没有必要将它与复制/粘贴功能联系起来。