是否可以使用SendInput来模拟拖放操作?
我有一个应用程序,它接受拖放到它上面的特定格式的文件,但不是从命令行,我想将它与一个文件关联起来。我想我应该创建一个小工具来查找窗口,并模拟文件的拖放过程--这可能吗?我是否需要使用SendInput或SendMessage?参数是什么?
发布于 2011-03-06 11:59:04
是的,很有可能。SendInput以非常低的级别注入鼠标事件。SendMessage不起作用。
你需要一个线程,因为DoDragDrop是一个阻塞调用。先把鼠标按下,启动线程,调用DoDragDrop。线程应该休眠,以便有足够的时间让DoDragDrop启动,然后伪装鼠标移动并释放鼠标。祈祷它第一次就能正常工作,否则就不可能进行调试。
发布于 2011-03-07 00:53:19
shell已经有了一个模拟drop的函数:SHDoDragDrop,不需要像伪造鼠标输入这样的破解。
由于您正在谈论命令行,XP添加了对应用程序/注册文件类型的模拟D&D的支持:How do I accept files to be opened via IDropTarget instead of on the command line?
https://stackoverflow.com/questions/5208084
复制相似问题