我正在尝试链接到图像文件(src属性),我将其从浏览器拖放到我的桌面应用程序中。图像位于锚点(a-tag)内。
我的代码适用于Chrome& Fx - 但不是IE :(
if (e.Data.GetDataPresent("HTML Format"))
{
string data = (string)e.Data.GetData(DataFormats.Html);
似乎资源管理器没有任何“HTML格式”数据发送到drg'n'drop机制,或者我做错了。
有没有办法从IE获取图像src?
更新 我明白了,如果我在其中选择带有Image的链接(“选择”),IE将发送HTML格式。 Fx和Chrome会在拖动时自动执行选择。
答案 0 :(得分:3)
你有几个问题。
首先,您应该下载ClipSpy tool,它会准确显示拖放或复制/粘贴格式的内容。您会发现图像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,然后将以下设置添加到密钥。