繁体   English   中英

将链接内的图像从IE拖放到C#

[英]Drag'n'drop image inside link from IE to C#

我正在尝试获取图像文件(src属性)的链接,该文件是我从浏览器拖放到桌面应用程序上的。 位于锚点(a标签)内的图像。

我的代码适用于Chrome和Fx-但不适用于IE :(

if (e.Data.GetDataPresent("HTML Format"))
                {
                    string data = (string)e.Data.GetData(DataFormats.Html);

似乎资源管理器没有任何发送到drg'n'drop机制的“ HTML格式”数据,或者我做错了。

有没有办法从IE获取图像src?

UPDATE,我看到,如果我选择其中包含Image的链接(“选择”),IE将发送HTML格式。 Fx和Chrome会在拖动时自动进行选择。

您有几个问题。

首先,您应该下载ClipSpy工具 ,该工具将确切显示正在拖放/复制/粘贴的格式。 您会发现图像SRC URL以UniformResourceLocatorW格式存储,并且还有其他多种可用格式,包括指向图像文件本地副本的CF_HDROP。

其次,由于安全限制,您会发现在Vista和Windows 7上的“保护模式” IE中,“拖放”无法正常工作。 要启用拖放功能,您必须在注册表中列出您的应用程序。

您可以通过创建DragDrop策略来注册应用程序以接受拖放操作中的Web内容。 DragDrop策略必须具有与其关联的全局唯一标识符(GUID)。 使用CreateGuid为您的策略创建新的GUID。 接下来,将密钥添加到以下位置。

HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Internet Explorer \\ Low Rights \\ DragDrop

将新密钥的名称设置为为策略创建的GUID,然后将以下设置添加到密钥。

  1. 策略(DWORD)应该设置为3,该值指示保护模式允许将Web内容以静默方式复制到您的应用程序进程中。
  2. AppName(REG_SZ)是应用程序可执行文件的文件名。
  3. AppPath(REG_SZ)是用户选择的应用程序可执行文件的安装位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM