2010-08-19 3 views
1

브라우저에서 내 데스크톱 응용 프로그램으로 drag'n'drop하는 이미지 파일 (src 특성)에 대한 링크를 가져 오려고합니다. 앵커 (a-tag) 안에있는 이미지.IE에서 C# 링크의 Drag'n'drop 이미지

내 코드 크롬 & FX는 작동 -하지만 IE :(으로

어떤 "HTML 형식"을하지 않아도 탐색기처럼 보인다
if (e.Data.GetDataPresent("HTML Format")) 
       { 
        string data = (string)e.Data.GetData(DataFormats.Html); 

는 데이터 메커니즘을 drg'n'drop로 전송, 또는 I 잘못하고 있어요.

는 IE에서 이미지 SRC를 얻을 수있는 방법이 있나요?

UPDATE 내가 그 안에 이미지와 링크 ("선택")을 선택하면, IE가 보내드립니다 것을 참조HTML 형식. Fx와 Chrome은 드래그 할 때 자동으로 선택 작업을 수행합니다.

답변

3

몇 가지 문제가 있습니다.

먼저 형식을 드래그/드롭하거나 복사/붙여 넣기를 수행 할 내용을 정확히 보여주는 ClipSpy tool을 다운로드해야합니다. 이미지 SRC URL은 UniformResourceLocatorW 형식으로 저장되며 이미지 파일의 로컬 복사본을 가리키는 CF_HDROP를 비롯하여 다양한 다른 형식도 사용할 수 있습니다.

두 번째로 보안 제한으로 인해 Vista 및 Windows 7의 보호 모드 IE에서 드래그/드롭이 제대로 작동하지 않습니다. 응용 프로그램에 끌어서 놓기를 사용하려면 응용 프로그램을 레지스트리에 나열해야합니다.

DragDrop 정책을 만들어 드래그 앤 드롭 작업에서 웹 콘텐츠를 허용하도록 응용 프로그램을 등록 할 수 있습니다. DragDrop 정책에는 전역 고유 식별자 (GUID)가 연결되어 있어야합니다. CreateGuid를 사용하여 정책에 대한 새 GUID를 만듭니다. 그런 다음 다음 위치에 키를 추가하십시오. 끌어서 놓기

\ 마이크로 소프트 \ Internet Explorer를 \ 낮은 권한 \

HKEY_LOCAL_MACHINE \ 소프트웨어는 정책에 대해 생성 된 GUID에 새 키의 이름을 설정 한 후 키에 다음 설정을 추가합니다.

  1. 정책 (DWORD)은 웹 콘텐츠가 응용 프로그램 프로세스에 자동으로 복사되도록 허용하려면 보호 모드를 설정해야합니다.
  2. AppName (REG_SZ)은 응용 프로그램 실행 파일의 파일 이름입니다.
  3. AppPath (REG_SZ)는 응용 프로그램의 실행 파일의 사용자가 선택한 설치 위치입니다.
+0

의견을 보내 주셔서 감사합니다. 나는 WinXp에서 이것을 시도하고있다. ClipSpy App (위대한) CF_HDROP도 UniformResourceLocatorW도보고하지 않습니다. 앞에서 설명한 것처럼 드래그하는 html은 다음과 같습니다. David

+0

2006 년 기사에서 Eric의 답변에 대한 배경 정보를 제공합니다 (http://msdn.microsoft.com/en-us/library/bb250462(v=/) VS.85) .aspx # wpm_addya – dumbledad