在我的.NET Windows窗体上从Chrome实现拖放
谷歌浏览器有一个方便的功能,我可以点击下载链接并将其拖动到Windows资源管理器窗口中,然后删除.放弃后,Chrome会下载该文件,并将其放在我放下的位置.
我希望能够从Google Chrome下载到我的应用程序中,但似乎并不是那么简单.我有一个名为gridFiles的DataGridView,以下代码: Private Sub gridFiles_DragDrop(ByVal sender As Object,ByVal e As System.Windows.Forms.DragEventArgs) Handles gridFiles.DragDrop If e.Data.GetDataPresent(DataFormats.FileDrop) Then Dim DroppedFiles() As String = e.Data.GetData(DataFormats.FileDrop) If Not DroppedFiles Is Nothing Then For Each file As String In DroppedFiles MsgBox(file) Next End If End If End Sub Private Sub gridFiles_DragEnter(ByVal sender As Object,ByVal e As System.Windows.Forms.DragEventArgs) Handles gridFiles.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.All End If End Sub 当我从Windows资源管理器中删除文件时,一切正常,我收到每个被删除的文件的消息框.但是,当我从Chrome中删除时,没有任何反应.其原因是DroppedFiles等于Nothing.看来e.Data.GetData没有返回任何东西.我已经使用e.Data.GetFormats()检查格式,并返回FileDrop,FileName,FileNameW,如同任何文件丢弃一样. 我相当确定的是,Chrome表示它有一些文件,以便DragEnter功能,但由于尚未下载该文件,DragDrop无法完成,所以Chrome返回任何文件.我怀疑在Windows资源管理器的上下文中,Chrome以某种方式获取该窗口的路径并稍后复制该文件. 所以我的问题是… 我如何愚弄Google Chrome进入我的应用程序?我看到这个工作通过某种方式给Chrome一个临时文件夹,认为它已经放弃了文件,我的应用程序将监视该文件夹的新文件,并在下载后将其拉入.我只需要找到Chrome的“知道”该文件夹的方法. 或者,如果我可以得到被删除的URL,那也是很好的.我可以用我的程序下载文件. 任何和所有的建议是非常感谢.谢谢. 编辑:所以看起来,使用普通的URL,我确实获得了正确的拖放UniformResourceLocator格式.我看到的行为与Gmail中的下载链接有关.它可能发生在别的地方,但我不确定.当gmail附件从Gmail拖到我的应用程序中时,我会收到一个FileDrop. 做更多的挖掘,似乎Gmail正在使用锚标签的download_url属性.我从来没有听说过这个.也许这只是他们添加的额外财产? 无论如何,由于我的应用程序将主要与电子邮件附件一起使用,所以我需要一个幻影FileDrop的工作方法,如上所述.我无法使用间谍.当出现丢失时似乎没有显示任何消息. (我也欢迎就这个问题提出任何建议.) 编辑#2:有关Gmail如何利用拖放文件的更多信息:http://www.thecssninja.com/javascript/gmail-dragout
我已经把我头顶上的公里的头发放在了自己的怪异的拖放行为上.六位变量提到的间谍可能是一个好主意.另一个是从我的Q / As中的一个在SO中看一下讨论:
Drag and Drop between Instances of the same Windows Forms Application 从我自己的经验来看,我似乎记得从浏览器拖放是一个安全问题,因此处理方式不同.希望这可以帮助. 编辑: 也许这回答你的问题: http://www.vbforums.com/showthread.php?t=529211 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 记 Win10 - Archlinux - Archlinux(Emergency) 三系统安装/
- win2008 R2 WEB环境配置之Mssql Server 2008 R2 安装图文教
- 安装node-gyp
- 用于Windows版本2.1.30324.52的Visual Studio Extensions似
- .net – Windows XP上的DateTime.ToLocalTime
- 将存储库从Windows迁移到Linux时出现格式错误的转储文件头(
- Win10 开启 Hyper-V 安装 CentOS 7 minimal
- 如何在Windows上使用Paramiko的Pageant?
- 关闭Windows Defender保护
- 模糊匹配/分块算法
- microsoft-graph – Microsoft Graph API:403尝
- Windows – Hyper-V主机是否可以在同一主机上加入
- InjectTouchInput Windows 8 C#无法正常工作(返回
- executable-jar – IzPack – Windows上的桌面快
- [Qt] 文本文件读写, 摘自官方文档
- Windows Azure – 将.NET Web应用程序转移到Azur
- 在rdp文件中保存密码| Windows 7
- windows上安装python虚拟环境
- 在WIN2008R2的IIS7环境下安装PHP5.6.15
- 如何在不设置环境变量或不在Windows中导航MySQL服