Так что я пытаюсь использовать ScriptGUI (от here) для моих файлов .bat
, но у него нет селектора файлов, поэтому я попытался его добавить.Проблемы с HTA
Я только что скопировал и переименовал код вокруг, и он, похоже, работает, кроме добавления другой переменной для предмета подфункции.
' build a file selector
ElseIf UCase(strSplit(0)) = "FILE" Then
strHTML = strHTML & Build_File(strLabel,id,Replace(strLabel," ",""),strSplit(2))
' store the batch file in the arrControls array
arrControls(id) = "file,none"
id = id + 1
> проблема, как представляется, код под здесь "Click_File(" & fiId & "," & fiFilter & ")"
Function Build_File(fiLabel, fiId, fiName, fiFilter)
' Construct a file selector
Dim strHTML
strHTML = "<input class='button' type='button' name='" _
& fiName & "' value='" & fiLabel & "' id='" & fiId _
& "' onClick=" & chr(34) & "Click_File(" & fiId & "," & fiFilter & ")" & chr(34) _
& " onMouseOver=" & chr(34) & fiName & ".className='button btnhov'" & chr(34) _
& " onMouseOut=" & chr(34) & fiName & ".className='button'" & chr(34) _
& ">"
strHTML = strHTML & " <input type='text' readonly='readonly' value='none' name='fi" & fiName & "' id='fi" & fiId & "'/> "
Build_File = strHTML
End Function
>
Sub Click_File(strId, fiFilter)
' open a file selector
set objShell= CreateObject("WSCript.Shell")
myCur = objShell.CurrentDirectory
Dim file
file = GetFileName(myCur, fiFilter)
arrControls(strId) = "file," & file
document.getElementById("fi" & strId).value = file
document.getElementById("fi" & strId).size = Len(file) + 2
End Sub
Это говорит мне, что я не могу использовать круглые скобки при вызове к югу.
Любые идеи?
EDIT: новая проблема,
Я использую скрипт из Роб ван дер Woude для диалога открытого файла (верхний пост с here), который, по-видимому предполагается работать в ОМТ, но я получаю сообщение об ошибке сказав " Компонент ActiveX не может создать объект: «UserAccounts.CommonDialog»
Я думаю, это сработало! достаточно забавно, что они уже были там, и отлично работают со всеми опциями, которые были добавлены ранее. –
У меня сейчас проблема с этой строкой. \t set objShell = CreateObject («WSCript.Shell») В нем указано, что переменная не определена: objShell –
Вызовите sub с помощью одного arg "works". Однако при использовании нескольких аргументов вы получите упомянутую ошибку. Так, возможно, вы добавили аргумент в эту процедуру? – Bond