我是javascript和HTA的新手,但这是我到目前为止所做的:
<HTML>
<HEAD>
<title>Create Drive</title>
<HTA:APPLICATION
APPLICATIONNAME="CreateDrive"
VERSION="1.0"
SINGLEINSTANCE="yes"/>
<SCRIPT language="JavaScript">
window.resizeTo(400,300)
function WriteFile() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.CreateTextFile("output.txt", true);
fh.WriteLine(userinfo.UN.value + ' ' + userinfo.FN.value + ' ' + userinfo.LN.value);
fh.Close();
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="userinfo">
<P>User Name: <INPUT name="UN" type="text"></P>
<P>First Name: <INPUT name="FN" type="text"></P>
<P>Last Name: <INPUT name="LN" type="text"></P>
<P><INPUT type="button" value="Create Drive" onclick="WriteFile();"></P>
</FORM>
</BODY>
</HTML>
我的目标是使用此HTA为新用户帐户创建网络驱动器。以前,要实现此目的,使用引用VBScript的.bat,并且用户输入三个值(用户名,名字和姓),这些值被传递到.vbs并创建驱动器:
cscript /nologo newdrive.vbs q:\users\%1 /DFS:yes /server:server1 /server2:server2 /userfirstname:%2 /userlastname:%3 /quiet:no
我想直接从我的HTA访问此VBScript并传递UN,FN和LN的值。我目前正在将输入的值保存到文本文件中,但我感谢有关完成此更好方法的任何信息。
感谢您的协助。
答案 0 :(得分:1)
我在这个例子中使用VBScript。但是,您可以轻松地在JavaScript中执行此操作。
Sub WriteFile()
' Retrieve the form values to be passed as args...
a1 = userinfo.UN.value
a2 = userinfo.FN.value
a3 = userinfo.LN.value
With CreateObject("WScript.Shell")
' Run the script, passing along the form values...
.Run "wscript.exe newdrive.vbs " & a1 & " " & a2 & " " & a3
End With
End Sub
在newdrive.vbs
脚本中,您将使用WScript.Arguments
集合检索这些值:
strUser = WScript.Arguments(0)
strFirst = WScript.Arguments(1)
strLast = WScript.Arguments(2)