2013-08-23 76 views
1

我幾個星期前開始學習HTA和VBScript,通過開始這個工作程序。如果這是一個愚蠢的問題,我仍然是新手,所以請原諒我。我一直在尋找兩個小時,或者我無能,或者我不知道如何搜索這個問題。If 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文件時,沒有消息框彈出,沒有任何影響。

回答

1

你忘了設置的情況下,使得子檢查運行在頁面加載,就像這樣:

<body background="c:\mount\windows\system32\aopentools\Images\MSCBG.bmp" onload="Check"> 

編輯

無差錯的執行小組檢查方法:

Sub Check 

    ' Creating objects 
    ' ========================================================== 

     Dim oFSO 
     Set oFSO = CreateObject("Scripting.FileSystemObject") 

    ' ========================================================== 

    If 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 
+0

編輯:好的,我添加了它,並獲得了所有我定義的變量,現在它只是返回消息框,即使該文件存在。 – AbaddonVH

+0

這很奇怪...再次檢查文件位置...同時確認您的頁面有權訪問該文件... –

+0

如果文本文檔存在,可以很好地工作,但如果我移動它,則會得到醜陋的舊的, 「錯誤:找不到文件」腳本錯誤窗口。由於我們需要使用錯誤代碼,所以這不會發生。有什麼辦法可以規避嗎?不過,再次感謝上述,如果它能讓我投票給你。 – AbaddonVH