2013-09-24 2 views
26

html5 버튼 이벤트를 사용하여 박쥐/실행 파일을 실행할 수 있습니까? IE에서 내가 잘못하지 않았다면 Shell 객체를 사용하여 달성 할 수 있습니다.HTML에서 'onclick'에 .exe 또는 .bat 파일을 실행할 수 있습니까

+1

사용 로컬 파일을 실행하는 방법이 링크를 [보기 HTML 응용 프로그램?] (http://www.codeproject.com/Articles/113678/How-to-execute-a-Local-File-using-HTML-Application) – coolprarun

+0

@coolprarun 또한 여러분이 제공하는 링크가 제 환경 ('Win8.1','IE11')에서 작동한다는 것을 확인했습니다. 'FF27'제외). 답변으로 게시해야합니다. – IsaacS

답변

18

는 여기에 내가 무슨 짓을했는지. 네트워크에서 HTML 페이지 설정을 원했기 때문에 다양한 폴더를 탐색하거나 앱을 업그레이드 할 필요가 없었습니다.

start /d "\\server\Software\" setup.exe 

HTML 코드가 있었다 :

<input type="button" value="Launch Installer" onclick="window.open('file:///S:Test/Test.bat')" /> 
그래서 내가 한 것은 설정이이 코드를하였습니다 .bat 파일에서, 모든 사용자가 액세스 할 수있는 드라이브 우리의 "공유"에 박쥐 파일이었다

(슬래시가 올바른지 확인하십시오. 다른 방법으로 작동하지 않았습니다.)

EXE를 직접 실행하는 것이 좋지만 가능하지는 않지만 .bat 파일을 사용하면이 문제를 해결할 수 있습니다. 그것이 FF 또는 크롬, 그러나 IE에서만 작동했으면 좋겠다.

+0

친애하는 @Chuff 박쥐 파일에 등록 명령이 있다면,'REG ADD "HKCU \ Software \ ...와 같은 sth을 의미합니다." –

25

아니요, 거대한 보안 위반입니다. 누군가가 달릴 수 있다면 상상해보십시오. 웹 사이트를 방문 할 때마다

format c: 

번지를 상상해보십시오.

+0

이것이 맞지만 동시에 웃으며 ...: D – aswzen

18

페이지 자체가 file:/// 경로를 통해 열릴 때 가능합니다.

Error: Access to 'file:///C:/Windows/notepad.exe' from script denied

+0

+1 IE11에서는 작동하지만 Win8.1에서는 Firefox 27에서는 작동하지 않습니다. – IsaacS

+1

@IsaacS Windows 8 상자에 액세스 할 수 없으므로 불행히도 그 일을 도울 수 없습니다. 필자는 Windows 7의 Firefox 28에서 다시 시도 했으므로 작동하므로 추가 보안은 Windows 8에만 국한됩니다. – Stijn

+2

이렇게하면 notepad.exe를 다운로드하고 실행할 수 있습니다. Firefox 31, Windows 7 – nodiscc

1

당신은/실행 .exe 파일을 실행할 수 없습니다 :

<button onclick="window.open('file:///C:/Windows/notepad.exe')"> 
    Launch notepad 
</button> 

그러나 웹 서버 (당신이 http://localhost/를 통해 액세스하는 경우에도)에 넣어 순간, 당신은 오류가 발생합니다 사용자 로컬 컴퓨터 또는 사이트를 통해 액세스 할 수 있습니다. 사용자는 먼저 exe 파일을 다운로드 한 다음 실행 파일을 실행해야합니다.
따라서 가능한 방법은 없습니다

다음 코드는 EXE가 사용자 컴퓨터에있는 경우에만 작동합니다.

<a href = "C:\folder_name\program.exe">

+0

사용자 컴퓨터에 박쥐 파일이있는 경우 @coolprarun 님, javascript 또는 sth else를 사용하여 Chrome에서 박쥐 파일을 어떻게 실행할 수 있습니까? ActiveXObject를 통해 IE 브라우저에서이 작업을 수행 할 수 있지만이 개체는 크롬에 적용 할 수 없습니다. –

4

크롬 확장자 chrome document 을 사용하는 OCX 구성 요소 및 크롬 브라우저가있는 인터넷 탐색기에서 클라이언트 시스템에 추가 설정이 필요합니다!

크롬 확장 소스의

중요한 부분 :

var port = chrome.runtime.connectNative("your.app.id"); 
     port.onMessage.addListener(onNativeMessage); 
     port.onDisconnect.addListener(onDisconnected); 
     port.postMessage("send some data to STDIO"); 

권한 파일 :

{ 
     "name": "your.app.id", 
     "description": "Name of your extension", 
     "path": "myapp.exe", 
     "type": "stdio", 
     "allowed_origins": [ 
      "chrome-extension://IDOFYOUREXTENSION_lokldaeplkmh/" 
     ] 
} 

창문 레지스트리 설정 :

HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\your.app.id 
REG_EXPAND_SZ : c:\permissionsettings.json 
관련 문제