2012-04-05 12 views
0

創建HTA將會自動的幾個應用 安裝它開始從閃存驅動器檢查某些文件的存在,然後複製大文件夾到本地,如果它不存在凍結,我有一個文本框用於更新腳本的當前狀態,但它似乎凍結並且從未更新,我也沒有任何運行任何人工睡眠功能。HTA值更新時,文件拷貝開始

這裏的段

If Not objFSO.FileExists(Office10Dir) Then 
MsgBox("Excel is missing") 

BasicTextBox.Value = "Office14 Not Detected, Copying Source Files to Local" 

Dim objFS, objFolder 
Dim OfficeTemp 
OfficeTemp = "C:\OfficeTemp" 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.CreateFolder(OfficeTemp) 
objFS.CopyFolder "OfficeTemp", "C:\OfficeTemp" 

BasicTextBox.Value = "Local Temp Directory Created" 

ELSE 
MsgBox("Excel is Installed") 
END IF 

所有我看到的是「本地臨時目錄中創建」消息一次文件複製完成

+1

那就是你一定會看到的嗎?你在複製完成後更新文本*,你想要發生什麼? – 2012-04-05 09:08:39

回答

0

感謝您的答覆球員,我能得到使用「CopyHere」的方法,並宣佈恆定更新的文件拷貝進度的進度條所期望的結果。

'copies files from current dir 'OfficeTemp' to local 
Dim objFS, objFolder, oShell, oTarget 
Dim OfficeTemp 
OfficeTemp = "C:\OfficeTemp" 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.CreateFolder(OfficeTemp) 

Const FOF_CREATEPROGRESSDLG = &H0& 

strTargetFolder = "C:\OfficeTemp" 

Set oShell = CreateObject("Shell.Application") 
Set objFolder = oShell.NameSpace(strTargetFolder) 

objFolder.CopyHere "OfficeTemp\*.*", FOF_CREATEPROGRESSDLG 
0

而不是「CopyFolder」你可以創建目標文件夾,然後遍歷文件對象。

<script> 
Set objFS = CreateObject("Scripting.FileSystemObject") 
objOfficeTemp = objFS.GetFolder("C:\OfficeTemp") 

If Not objFS.FolderExists("C:\SomeDestination") Then 
    objFS.CreateFolder("C:\SomeDestination") 
End If 

For Each objOfficeTempFile In objOfficeTemp.Files 
    'copy the file 
    'add some logic that updates your hta 
    'if you have nested folders, you'll 
    'have to copy them recursively... 

    objOfficeTempFile.Copy "C:\SomeDestination" 

    updatespan.innerhtml = "Copying file: " & objOfficeTempFile.Name 
Next 
</script> 


<html> 
<body> 
<span id="updatespan">&nbsp;</span> 
</body> 
</html>