可以使用SendInput模拟拖放操作吗?使用SendInput模拟拖放操作
我有一个应用程序接受某些格式的文件,而不是从命令行中删除,我想将它与一个文件关联起来。我想我会创建一个小工具来查找窗口,并模拟文件拖放 - 这是否可能?我需要使用SendInput
或可能SendMessage
?参数是什么?
可以使用SendInput模拟拖放操作吗?使用SendInput模拟拖放操作
我有一个应用程序接受某些格式的文件,而不是从命令行中删除,我想将它与一个文件关联起来。我想我会创建一个小工具来查找窗口,并模拟文件拖放 - 这是否可能?我需要使用SendInput
或可能SendMessage
?参数是什么?
是的,很可能。 SendInput以非常低的水平注入鼠标事件。 SendMessage不起作用。
由于DoDragDrop是一个阻塞调用,您将需要一个线程。先将鼠标放下,启动线程,调用DoDragDrop。线程应该睡眠,以便有足够的时间让DoDragDrop开始使用,然后假冒鼠标移动并向上移动。第一次保持手指交叉,它不可能调试,如果没有。
该shell已经有一个模拟drop的功能:SHDoDragDrop,不需要像伪造鼠标输入这样的黑客。
既然你正在谈论的命令行,XP加入了模拟d应用程序/注册的文件类型& d支持:How do I accept files to be opened via IDropTarget instead of on the command line?