Я пытаюсь создать приложение HTA, которое может открывать программы (exe, bat и т. Д.) Локально на компьютере.
Это будет использоваться на ПК с киоском, где пользователи неу меня нет доступа к рабочему столу и т. д.
Но есть некоторые проблемы с поиском скрипта, который работает ..
Сейчас я использую этот скрипт:
<script type="text/javascript">
function runApp(which) {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run (which,1,true);
}
</script>
И вот как выглядят мои ссылки:
<a
href="javascript:window.location.href=window.location.href"
onclick="runApp('file://C:/Tools/program.exe');parent.playSound('assets/sounds/startsound.mp3');"
onmouseover="playSound('assets/sounds/hover.wav');"
unselectable="on"
style="cursor: hand; display: block;">Start Program
</a>
Проблема этого скрипта в том, что некоторые из программ, которые я открываю из панели запуска HTA, расположены под приложением HTA, которое работает в полноэкранном режиме. Мне нужно ALT + TAB, чтобы переключиться на них ..
Я искал другой скрипт и нашел этот пример HTA, который выглядит как лучший способ сделать это:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9">
<HTA:APPLICATION
APPLICATIONNAME="Open link with chrome browser"
BORDER="THIN"
BORDERSTYLE="NORMAL"
ICON="Explorer.exe"
INNERBORDER="NO"
MAXIMIZEBUTTON="NO"
MINIMIZEBUTTON="NO"
SCROLL="NO"
SELECTION="NO"
SINGLEINSTANCE="YES"/>
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
<title>Test HTA</title>
<SCRIPT LANGUAGE="VBScript">
'************************************************************************************
Option Explicit
Function Executer(StrCmd)
Dim ws,MyCmd,Resultat
Set ws = CreateObject("wscript.Shell")
MyCmd = "CMD /C " & StrCmd & " "
Resultat = ws.run(MyCmd,0,True)
Executer = Resultat
End Function
'************************************************************************************
Sub window_onload()
CenterWindow 400,320
End Sub
'************************************************************************************
Sub CenterWindow(x,y)
Dim iLeft,itop
window.resizeTo x,y
iLeft = window.screen.availWidth/2 - x/2
itop = window.screen.availHeight/2 - y/2
window.moveTo ileft,itop
End Sub
'************************************************************************************
</script>
</head>
<p>Links :</p>
<ol>
<li><a href="#" onClick="Call Executer('Start C:\ScriptExe.exe')">EXE test</a></li>
<li><a href="#" onClick="Call Executer('Start C:\Tools\Bats\menu.bat')">Bat test</a></li>
<li><a href="#" onClick="Call Executer('Start chrome.exe www.google.com chrome --app=https://www.google.com/')">Chrome App Test</a></li>
</ol>
<BODY>
</body>
</html>
Проблема со сценарием в том, что мне нужно использовать:
<meta http-equiv="X-UA-Compatible" content="IE=9">
И если я добавлю его в приведенный выше пример, он сломается и покажет мне эту ошибку при запуске HTA:
Произошла ошибка в скрипте на этой странице. Строка: 46 Char: 31 Ошибка: ожидается ";"Код: 0
Похоже, что-то ломается, с этим linie и char 31: Call Executer
<li><a href="#" onClick="Call Executer('Start C:\ScriptExe.exe')">EXE test</a></li>
Если я не использую IE = 9 в моей программе HTAПриложение запуска, я получаю много ошибок с jquery, который я использую.
У меня нет опыта работы с hta, vbs и только немного java .. Поэтому я должен использовать любые скрипты, которые я могу найти.
Может кто-нибудь сказать мне, почему это не работает с тегом содержимого IE = 9?