模拟拖拽使用 SendInput 进行删除操作

发布于 2024-10-20 21:21:04 字数 198 浏览 7 评论 0原文

SendInput 可以用来模拟悬垂和悬垂吗?下降操作?

我有一个应用程序,它接受放置在其上的特定格式的文件,但不是来自命令行,并且我想将其与文件关联。我想我应该创建一个小工具来查找窗口,并模拟拖动和拖动。删除文件-这有可能吗?我是否需要使用 SendInput 或者可能使用 SendMessage?参数是什么?

Can SendInput be used to simulate a drap & drop operation?

I've got an application that accepts files of a certain format that are dropped on it, but not from the command line, and I want to associate it with a file. I thought I'd create a small tool that finds the window, and simulates a drag & drop of the file - is this at all possible? Do I need to use SendInput or possibly SendMessage? What would be the parameters?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

假扮的天使 2024-10-27 21:21:04

是的,很有可能。 SendInput 在非常低的级别注入鼠标事件。发送消息不起作用。

您将需要一个线程,因为 DoDragDrop 是一个阻塞调用。首先假鼠标按下,启动线程,调用DoDragDrop。线程应该休眠,以便为 DoDragDrop 启动提供足够的时间,然后模拟鼠标移动和鼠标抬起。祈祷它第一次能工作,如果不能的话就不可能调试。

Yes, pretty likely. SendInput injects mouse events at a very low level. SendMessage won't work.

You'll need a thread since DoDragDrop is a blocking call. Fake the mouse down first, start the thread, call DoDragDrop. The thread should sleep to give enough time for DoDragDrop to get started, then fake mouse move and mouse up. Keep fingers crossed that it works the first time, it is impossible to debug if it doesn't.

凉世弥音 2024-10-27 21:21:04

shell 已经具有模拟放置的功能: SHDoDragDrop,不需要像伪造鼠标输入这样的黑客行为。

由于您正在谈论命令行,XP 添加了对模拟应用程序/注册文件类型的 D&D 的支持: 如何接受通过 IDropTarget 而不是在命令行上打开的文件?

The shell already has a function that simulates a drop: SHDoDragDrop, no need for hacks like faking mouse input.

Since you are talking about the commandline, XP added support for simulating D&D for applications/registered file types: How do I accept files to be opened via IDropTarget instead of on the command line?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文