微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QDrag和Skype问题只赢

我正在写一个文件/档案资源pipe理器,只有在Windows平台上的基于qt的应用程序和Skype聊天窗口之间的交互问题。

当我尝试从我的应用程序拖放文件(由QDrag提供的文件的URL MIME数据)到Skype聊天窗口,文件被发送两次。 当我尝试修改一个Qt拖放示例时,也是一样的。

Skype版本是5.10.0.116。 Bug在Qt版本4.7.3,4.8.1,4.8.3上是可重现的。

编辑:

注册一个全局钩子来检测鼠标是否拖拽文件/文本

将任何东西拖到桌面上

是否有可能在C#中拖放而不将源移动到目标?

已经尝试了几个应用程序之间的拖放式交互

我的应用程序 – >资源pipe理器=好

我的应用程序 – > Notepad ++ = ok(仅在一个选项卡中显示文件内容

我的应用程序 – > WinRar = ok(创build只有一个文件的存档)

我的应用程序 – > TotalCommander =确定

我的应用程序 – > ICQ = ok(只发送一个文件

我的应用程序 – > Clementine(基于Qt的音乐播放器)= ok(只有一个文件添加到播放列表中)

资源pipe理器 – > Skype =确定

我的应用程序 – > Skype – 文件被发送两次

Clementine – > Skype – 文件被发送两次

EDIT2:

此外,qt创build的MIME数据不同于由资源pipe理器创build。

Qt的:

0“text / uri-list”“file:/// C:/Users/user/Pictures/myfile.ext”

1“application / x-qt-windows-mime; value =”UniformResourceLocatorW“”“…”(我用省略号replace了QByteArray的内容

资源pipe理器:

0“application / x-qt-windows-mime; value =”Shell IDList Array“”“…”

1“application / x-qt-windows-mime; value =”UsingDefaultDragImage“”“…”

2“application / x-qt-windows-mime; value =”DragImageBits“”“…”

3“application / x-qt-windows-mime; value =”DragContext“”“…”

4“application / x-qt-windows-mime; value =”DragSourceHelperFlags“”“…”

5“application / x-qt-windows-mime; value =”InShellDragLoop“”“…”

6“text / uri-list”“file:/// C:/Users/user/Pictures/myfile.ext”

我看,如果Qt,这是不是一个问题,这是在Skype方面的错误数据处理。 与“text / uri-list”一起,Qt提供了“UniformResourceLocatorW”值和相同的数据(我不能否认它,它比Qt用户可以得到的更深)。 Skype处理两个值 – “text / uri-list”和“UniformResourceLocatorW”,导致两次发送相同的文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐