Qdrag和Skype问题(仅赢)

QDrag and Skype issue (win only)

本文关键字:仅赢 问题 Skype Qdrag      更新时间:2023-10-16

我正在编写一个小文件/档案资源管理器,并且仅在Windows平台上与基于QT的应用和Skype聊天窗口之间的交互问题。

当我尝试从我的应用程序到Skype聊天窗口拖动Drop文件(由QDRAG提供文件-URLS MIME数据)时,将发送两次文件。我尝试修改QT拖放示例之一时也有一样。

Skype版本为5.10.0.116。错误在QT版本4.7.3,4.8.1,4.8.3。

编辑:

尝试了几个应用程序之间的拖放互动

  • 我的应用程序 -> Explorer = OK
  • 我的应用 ->记事本 = ok(仅在一个选项卡中显示文件的内容)
  • 我的应用 -> winrar = ok(与只有一个文件)
  • 我的应用程序 -> totalCommander = ok
  • 我的应用 -> iCQ =确定(仅发送一个文件)
  • 我的应用程序 -> clementine(基于QT的音乐播放器)=确定(只有一个文件添加到播放列表)
  • Explorer-> Skype = OK

但是

  • 我的应用 -> Skype-文件发送两次
  • Clementine-> Skype-文件发送两次

edit2:

另外,QT创建的MIME数据与Explorer创建的不同。

QT:

  • 0" text/uri-list" file:///c:/users/user/pictures/myfile.ext"
  • 1"应用程序/x-qt-windows-mime; value =" sumiforyResourcelocatorw"" ..."(我用省略者代替了QbyTearray内容)

资源管理器:

  • 0"应用程序/x-qt-windows-mime; value =" shell idlist数组"" ..."
  • 1"应用程序/x-qt-windows-mime; value =" useddefaultdragimage"" ..."
  • 2"应用程序/x-qt-windows-mime; value =" dragimagebits"" ..."
  • 3"应用程序/x-qt-windows-mime; value =" dragContext" ..."
  • 4"应用程序/x-qt-windows-mime; value =" dragsourcehelperflags"" ..."
  • 5"应用程序/x-qt-windows-mime; value =" inshelldragloop" ..."
  • 6" text/uri-list" file:///c:/users/user/pictures/myfile.ext"

我知道,如果qt,在Skype侧的MIME数据处理是错误的。除了"文本/URI列表"外,QT还提供了具有相同数据的" UniformerResourCelocatorw"值(我不能否认,它添加了比QT用户可以获得的要深得多)。Skype处理两个值 - " text/uri list"answers" UniformerResourcelocatorw",导致两次发送相同的文件。