2009-04-14 4 views
1

개인 용도로 약간의 HTA를 제작 중이며 파일을 인터페이스로 드래그 앤 드롭 할 수 있기를 바랍니다. 파일이 삭제되면 자동으로 실행합니다 (파일 확장자와 같은 일부 매개 변수에 맞다고 가정). 또는 적어도 HTA 인터페이스의 입력란을 채우십시오.자바 스크립트 - 파일 경로가 HTA에 누락되었습니다.

광범위하게 검색했지만 해결 방법을 찾을 수 없습니다. 생각?

답변

-2

분명히 HTA는 내 시스템에서 적어도 쉘 삭제 작업 –의 대상이 될 수 없으므로 HTA에서 무언가를 떨어 뜨리는 것은 불가능합니다.

이것은 사용자가 의도 한대로 에 직접을 수행 할 수 없다는 것을 의미합니다.

그러나 .vbs는 드롭 대상이 될 수 있습니다. 삭제 된 파일의 전체 경로는 WScript.Arguments.Unnamed 컬렉션을 통해 사용할 수 있습니다.

HTA는 the commandLine Property을 통해 명령 줄 인수에 액세스 할 수 있습니다. 즉, 삭제 된 파일을 명령 줄로 변환하고 HTA를 호출하는 작은 도우미 VBScript를 작성할 수 있습니다.

.vbs에 끝없는 파일을 놓을 수 없으며 명령 줄도 무제한이 아닙니다. 몇 킬로바이트의 영역에 길이 제한이있을 것입니다. (정확히 한계가있는 곳을 찾으려고하지 않았습니다. 한도를 맞을 준비가되어 있습니다.)

+0

답변 해 주셔서 감사합니다. 나는 그것을 두려워했다. HTA 대신 HTML 페이지에 프리즘 인터페이스를 사용할 수도 있습니다. – Joshua

+1

-1 "HTA는 분명히 셸 드롭 작업의 대상이 될 수 없습니다"는 (지금) 올바르지 않습니다. HTA 파일 또는 바로 가기에 놓기를 사용하려면 레지스트리를 간단하게 변경해야하며 그 방법은 항상 그렇습니다. HTML5에서는 HTA 창에서의 드롭 지원이 간단 해졌습니다. –

+0

그건 좋은 추가 사항이지만, 내가 상향 투표 한 두 번째 대답은 정확히 말하면서 왜 그것이 받아 들여지지 않았는지 전혀 모른다. 전체 스레드는 2009 년부터이므로 파티에 상당히 늦었습니다. * 분명히이 답변을 읽지 않았던 것 같습니다. 이제는 실제로 바닐라 시스템에서 작동하지 않는다는 사실과 결합하십시오. HTA를 선적하기를 원할 것 같은 ... 당신은 아이디어를 얻습니다. – Tomalak

5

Tomalak, 당신이 원하는 것을 할 수있는 방법입니다. HTA 파일을 위해 레지스트리에 DropHandler를 추가해야합니다. 정말 쉽게 할 수 있고 한번하면 할 일을 정확히 할 수 있습니다. 나는 많은 문서를 찾을 수는 없었지만, 오래 전 Michel Gallant라는 사람이 작성한 HTA에 대한 링크는 다음과 같습니다. http://www.jensign.com/JavaScience/www/wsh/imager/index.html

HTA가 시작되면 DropHandler가 이미 구성되어 있는지 확인합니다. 그렇지 않으면 구성 할 수있는 옵션이 제공됩니다. 일단 구성을 마치면 HTA와 wallah를 닫았다가 다시 열면 HTA 파일에서 드래그 앤 드롭이 지원됩니다.

+0

니스. 그렇게 생각하지 않았지만, 물론 당신은 당연한 것입니다. – Tomalak

1

드롭 처리기를 사용하지 않으려는 경우 가능할 수 있습니다. 그것은 코미디 체인의 비트지만, 내가 구석에 백업하고 그 기능을 필요로하는 경우이 구현을 볼 수 있습니다.

어딘가에 임시 폴더로 src가있는 IFRAME을 만들 수 있습니다. 이 폴더는 탐색기보기로 표시됩니다. 그런 다음 파일을 끌어다 놓을 수 있습니다. 해당 폴더에 대해 폴링 루틴을 설정하여 새 파일이 있는지 확인하십시오. 그리고, 당신은 주어진 파일로 드래그 앤 드롭 작업을 지원하는 절름발이 방법이 있습니다.

0

이동하여 드래그 앤 드롭을 제공하는 Google 장비를 사용해보십시오.

hta에서 mysql을 사용할 수도 있습니다.

구글 기어는 그러나, 당신은 그때는 그 후, 당신은 iframe 통해 activexobject를 사용할 수있는 iframe(<iframe application="true" src=".."></iframe>)

를 사용하여 포함, HTML 파일에서 activexobject을 만들 수 HTA에서 사용할 수 없습니다.

0

관련 & hellip;

는 [HTA] 인터페이스

중 & hellip에 파일을 드래그 앤 드롭 할 수 있도록하고 싶습니다; HTA 파일 자체 나 단축키에 파일을 놓기보다는 HTA ’ 실행중인 창에 파일을 놓으려는 욕심으로 해석합니다.

HTML5를 사용하면 쉽게 삭제할 수 있습니다. 예 : <div> 요소를 드롭 영역으로 사용하십시오. 이 요소는 dragenter, dragoverdrop 이벤트를 처리합니다. 예 : 드롭 핸들러는 다음과 같습니다.

& hellip; 여기서 on_files_dropped은 파일 드롭을 처리하는 사용자가 정의한 함수입니다.

문서로드 이벤트에 동적으로 이벤트 핸들러를 추가, 다음과 같이 할 수 있습니다

var dropbox = document.getElementById('blah'); 
dropbox.addEventListener('dragenter', on_dragenter, false); 
dropbox.addEventListener('dragover', on_dragover, false); 
dropbox.addEventListener('drop', on_drop, false); 

를 지금까지 너무 좋아.

그러나 제한 사항이있는 보안은 다음과 같습니다. 원래 파일 경로을 직접 알지 못하고 파일 이름과 파일 크기 만 알 수 있습니다. 이 기능은 로컬 신뢰할 수있는 HTML 응용 프로그램이 아닌 웹용으로 설계되었습니다. 그래서 반드시 문제가 될 수도 있고 그렇지 않을 수도 있습니다. HTML 요소에 대한 소스로 놓은 파일을 사용하는 목적

  • , 일반적으로 삭제 된 파일을 읽기 위해, HTML5는이 FileReader (사용 가능한 tutorials의 수, 링크가 제공 기술 문서 참조).

  • 로컬 경로가 필요한 곳. Windows Media Player에서 파일을 재생하려면 을 드래그 작업이 Windows 탐색기 (이제는 파일 탐색기라고도 함)에서 비롯된 것으로 가정 한 다음 해당 탐색기 창이 있으면 해당 이름과 크기의 파일이 포함되어 있는지 확인하십시오.

그런 발신 창을 하나만 발견하면 좋겠다.

기본적으로 ’입니다. HTAs가 IE7을 기본값으로 사용하기 때문에 HTML5 기능을 어떻게 얻을 수 있습니까?

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
     <!-- A windows web control defaults to quirky IE7 semantics. Request for better: --> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta http-equiv="MSThemeCompatible" content="yes"> 

이 당신에게 최신 인터넷 익스플로러 엔진을 제공하지만, 따라서 어떤 HTA 요소의 비용과에 직접 액세스에서 : 음 DOCTYPE 선언을 통해,하지만 지금까지 내 작은 실험에 난 그냥 다음 사용할 수 있습니다 명령 행. 나는 그 the command line can be retrieved by running Windows’ wmic program을 발견했다. 그러나 그 ’는 무서운 해킹이다. 가장 명백하게 열린 도로가 닫히는 것으로 드러나는이 전체 문제 영역은 현재 Microsoft가 HTA를 고려한 결과 인 것으로 보입니다 a legacy technology, to be quietly phased out in favor of fullscreen ad-ridden Windows 8 AppStore apps.

어쨌든, 행운을 빈다.