Я только начал изучать HTA и VBScript самостоятельно несколько недель назад, начав эту программу для работы. Я все еще новичок, поэтому простите меня, если это глупый вопрос. Я искал два часа, либо я некомпетентен, либо не знаю, как искать вопрос.Если инструкция Then никогда не выполняется (VBScript)
Мне нужен этот скрипт для проверки трех файлов; если все три существуют, сценарий будет продолжен, если его не будет, появится диалоговое окно с сообщением пользователю, которого нет. Я посмотрел на то, что чувствует себя как пятьдесят различных способов сделать это, но никто из них не работает для меня. Следующий метод - единственный, который не возвращает никаких ошибок, проблема в том, что он ничего не делает, это просто пустое окно. (Я тестирую, проверив только для одного файла первого)
<SCRIPT LANGUAGE="VBScript">
' Resize and center the window
' ==========================================================
sub DoResize
window.resizeTo 350,250
screenWidth = Document.ParentWindow.Screen.AvailWidth
screenHeight = Document.ParentWindow.Screen.AvailHeight
posLeft = (screenWidth - 350)/2
posTop = (screenHeight - 250)/2
window.moveTo posLeft, posTop
end Sub
DoResize()
</SCRIPT>
<TITLE>Test</TITLE>
<HTA:APPLICATION
Id="oInstall"
APPLICATIONNAME="Test"
SCROLL="no"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"
SELECTION="NO"
CONTEXTMENU = "NO"
BORDER="Dialogue"
BORDERStyle = "Normal"
INNERBORDER = "YES"
NOWRAP
SYSMENU = "YES"
>
<HEAD>
<STYLE type=text/css>
textarea {
overflow: hidden;
color: #ffffff;
border: none;
background-color: transparent;
}
</STYLE>
<body background="c:\mount\windows\system32\aopentools\Images\MSCBG.bmp">
</HEAD>
<textarea name="ProgSect" rows=1 cols=16 readonly></textarea><img src="c:\mount\windows\system32\aopentools\images\mscind.gif">
<SCRIPT LANGUAGE="VBScript">
Option Explicit
Sub Check
' Creating objects
' ==========================================================
Dim WshShell
Dim objFSO, outFile
Dim filesys
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set filesys = CreateObject("Scripting.FileSystemObject")
Set oFSO=CreateObject("Scripting.FileSystemObject")
' ==========================================================
If oFile=oFSO.FileExists("c:\users\jgainey\desktop\test.txt") Then
BeginImage
Else
MsgBox "An Error Has Occurred" & vbNewLine & "EC03: Test.txt" & vbExclamation & "ERROR"
Window.Close
End If
End Sub
Sub BeginImage
' Creating objects
' ==========================================================
Dim intWindowStyle
Dim bWaitOnReturn
Dim objShell
Dim WshShell
Dim objFSO, outFile
Dim filesys
Set objShell = CreateObject("Wscript.Shell")
Set WshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set filesys = CreateObject("Scripting.FileSystemObject")
set oFSO=CreateObject("Scripting.FileSystemObject")
set oFile=oFSO.OpenTextFile("c:\users\jgainey\desktop\test.txt",1)
text=oFile.ReadAll
document.all.ProgSect.value=text
End Sub
</SCRIPT>
</BODY>
</HTML>
В результате окно с моим фоновым изображением, мой .gif, моей текстовой областью, и это его, текстовая область никогда не заполнит. Когда я удаляю файл test.txt, окно сообщения не появляется, на что-то не влияет.
EDIT: Хорошо, я добавил его и определил все мои переменные, теперь он просто возвращает окно сообщения, даже если файл существует. – AbaddonVH
Это странно ... Дважды проверьте местоположение файла снова ... Также убедитесь, что ваша страница имеет разрешение на доступ к файлу ... –
Работает отлично, если текстовый документ есть, но если я его перевешу, я получаю уродливый старый, «Ошибка: файл не найден». Окно «Ошибка скрипта». Поскольку нам нужно использовать коды ошибок, этого не может быть. Есть ли способ обойти это? Еще раз спасибо за сказанное выше, однако, я бы проголосовал за вас, если бы это позволило мне. – AbaddonVH