在.hta文件中使用VBScript

时间:2013-02-18 12:51:55

标签: hta

我是VBScripting的新手,但是能够使用VBScript创建一些.wsf文件,这对我有很大的帮助。

我决定更进一步,使用HTML应用程序让它们更具互动性。我已经完成了相当多的阅读,看起来我不能在.hta文件中使用WScript,但我看不到一种干净,简单的方法来使其工作。我真的很感激一些指示或最佳实践想法,以帮助我站起来。

无论如何,代码就是这样,希望是非常自我解释的:

    

    set fs = WScript.CreateObject("Scripting.FileSystemObject")
    set oShell = CreateObject("Wscript.Shell")
    set objShell = CreateObject("Shell.Application")

    currDir = oShell.currentDirectory
    CreateFolder(C:\TEMP1234")


    Function CreateFolder(foldr)
        dim create
        if(fs.FolderExists(foldr)) then
            Msgbox "Folder already exists: "+foldr
        else
            fs.CreateFolder(foldr)
        end if
    End Function

</script>

<body>
<p>Please make selection</p>
<input type="checkbox" name="Selection" value="1.">Option 1<br>
<input type="checkbox" name="Selection" value="2.">Option 2<br>

<input id=runbutton class="button" type="button" value="OK" name="ok_button" onClick"getSelection">
&nbsp;&nbsp;&nbsp;
<input id=runbutton class="button" type="button" value="Cancel" name="cancel_button" onClick="CancelScript>

</body>

<script language="VBScript">

    Sub getSelection
        if Selection(0).Checked then
            option1
        end if
        if Selection(1).Checked then
            option2
        end if

        if radioChoice="" then
            exit sub
        end if
    end sub

    Sub CancelScript
        Self.Close()
    end sub

    sub option1
        Msgbox "Option 1 Selected"
    end sub

    sub option2
        Msgbox "Option 2 selected"
    end sub

</script>

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的代码中的一些详细信息:

你的文件全部都是脚本。将它们放在head和/或body中,但不在这两个元素之外。

WScript对象在HTA中不可用:fs = CreateObject("Scripting.FileSystemObject");可以解决问题。

这里的引用CreateFolder(C:\TEMP1234")是可疑的,它是无对的还是额外的?路径名不能包含引号,因此需要修复。

第一个input中有一个拼写错误,=中缺少<input ... onClick"getSelection">。这很关键,因为永远不会调用getSelection