如何在隐藏模式下运行HTA

时间:2017-05-13 17:23:16

标签: javascript html hta

我有一个非常好用的HTA文件,但我的问题是我希望在文件运行时隐藏HTA控制台。

这是我的代码:

<script>
var myVar = setInterval(function(){ myTimer() }, 3000);
function myTimer() {
    objShell=new ActiveXObject("WScript.Shell");
objShell.Run ('%windir%\\System32\\cmd.exe /c %temp%\\readme.txt', 0);window.close();
}
</script>

没有计时器,它会运行隐藏,但是当我包含计时器时,它会显示控制台。

有人可以帮我解决这个问题吗?

谢谢

2 个答案:

答案 0 :(得分:3)

你有一些选择;你可以使用windowstate =&#34;最小化&#34;在您的HTA属性中,请参阅https://technet.microsoft.com/en-us/library/ee176567.aspx以获取有关属性的更多信息。

该应用程序在运行时仍会显示在任务栏上,因此您可以将showintaskbar设置为,但随后您将看到屏幕一角的窗口最小化。

您可以将window.resizeTo(0,0);WINDOWSTATE="normal"一起使用,但在更改尺寸之前,窗口会闪烁。

您可以尝试使用这些选项,看看哪种选项最适合您的需求。

<HTML>
    <HEAD>
        <HTA:APPLICATION ID="oHTA"
        APPLICATIONNAME="myApp"
        WINDOWSTATE="normal"
        MAXIMIZEBUTTON="no"
        MINIMIZEBUTTON="no"
        CAPTION="no"
        SHOWINTASKBAR="no"
        >
        <script>
            window.resizeTo(0,0);
            var myVar = setInterval(function(){ myTimer() }, 3000);
            function myTimer() {
                objShell=new ActiveXObject("WScript.Shell");
            objShell.Run ('%windir%\\System32\\cmd.exe /c %temp%\\readme.txt', 0);window.close();
            }
        </script>
    </HEAD>
    <BODY SCROLL="no">
    </BODY>
</HTML>

答案 1 :(得分:0)

如果您只是打开一个文本文件,为什么还要打扰命令提示符?另外,如果HTA在文件打开后立即关闭,为什么会有间隔?我认为您应该能够执行以下操作,同时还使用Gordon建议的WINDOWSTATE属性:

objShell.Run("%temp%\\readme.txt", 0, true);
window.close();