白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-04 #21 拖当然容易,支持CTRL+C和CTRL+v难而已,既然觉得不成比例,就放弃这种做法咯。 什么qqt无非是先下载到一个指定地方再覆盖而已,没什么技术。
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-04 #23 拖动的时候先把文件下载来到某个地方,然后写把所有文件路径写入剪贴板。 再向目标发送WM_PASTE事件就是最简单的方法了。 不用Hook的话你要对windows标准操作,就只能这样。
墨 墨剑 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #25 拖动正如你们所说的这样.但有一点不明白的是,我如何知道是把文件拖到哪儿去了? 这一点很重要: 一.可以免去把文件放入临时目录再拷贝的过程,节约时间 二,拖动有很多种情况,比如拖动到IE地址栏啊,打开的文本文件啊都是可以接受的,但是我只希望是拖动到资源管理器里面我才进行处理.
拖动正如你们所说的这样.但有一点不明白的是,我如何知道是把文件拖到哪儿去了? 这一点很重要: 一.可以免去把文件放入临时目录再拷贝的过程,节约时间 二,拖动有很多种情况,比如拖动到IE地址栏啊,打开的文本文件啊都是可以接受的,但是我只希望是拖动到资源管理器里面我才进行处理.
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #26 正因不知道把文件拖到哪里去,所以才是拖的瞬间就开始下载到临时目录,这一点很重要,无法避免的, 更不存在所谓节省时间。 文件下载完成后,把地址写入剪贴版,剩下的事情就是发送WM_paste消息,其它东西Explorer会帮你完成的了,就算你是拖到IE地址栏,那应该就不会有什么释放发生。拖到资源管理器的话就会实现文件copy
正因不知道把文件拖到哪里去,所以才是拖的瞬间就开始下载到临时目录,这一点很重要,无法避免的, 更不存在所谓节省时间。 文件下载完成后,把地址写入剪贴版,剩下的事情就是发送WM_paste消息,其它东西Explorer会帮你完成的了,就算你是拖到IE地址栏,那应该就不会有什么释放发生。拖到资源管理器的话就会实现文件copy
墨 墨剑 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #30 郁闷中,从listview中从左边拖到右边,也会触发...这可不希望看到. 所以正在想从鼠标位置来判断是否是拖动到外面程序. 但是如果有的时候是要拖动到比如qq共享里面,而如果qq共享那个窗体设置为顶层窗体而又在我的程序上方(其位置包含在我的窗体的位置里面),那就拖不了了.白兄有何高见?
郁闷中,从listview中从左边拖到右边,也会触发...这可不希望看到. 所以正在想从鼠标位置来判断是否是拖动到外面程序. 但是如果有的时候是要拖动到比如qq共享里面,而如果qq共享那个窗体设置为顶层窗体而又在我的程序上方(其位置包含在我的窗体的位置里面),那就拖不了了.白兄有何高见?
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #31 拖不了没关系,关键是只要你拖了那个事件就会发生,剩下的事情就由WM_PASTE处理,所以关键是你能提供让WM_PASTE执行的条件。 一般来说除了explorer之外别的程序不会对wm_paste处理为粘贴文件的,所以无论你拖到什么地方都不会有问题。
拖不了没关系,关键是只要你拖了那个事件就会发生,剩下的事情就由WM_PASTE处理,所以关键是你能提供让WM_PASTE执行的条件。 一般来说除了explorer之外别的程序不会对wm_paste处理为粘贴文件的,所以无论你拖到什么地方都不会有问题。
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #32 如果是注册了接受ole拖动的程序,你可以把文件拖动到任务栏上那个程序图标处,稍微等会,然后这个程序就会被系统切换到前台来的。然后拖进去就行。
墨 墨剑 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #36 最后 GetCursorPos(CurPoint); if WindowFromPoint(CurPoint)<>listview1.Handle; 搞定算了. 这个问题得到了好多富翁的回答,感觉好好.散分了.
最后 GetCursorPos(CurPoint); if WindowFromPoint(CurPoint)<>listview1.Handle; 搞定算了. 这个问题得到了好多富翁的回答,感觉好好.散分了.
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-05 #37 还是不明白吗?除非你的listview可以完全兼容explorer的wm_paste,否则是不会造成影响的。如果你能完全兼容,就不用在这里问了。