0

「123.txt」というファイルを一時インターネット フォルダーに保存する Internet Explorer ページに移動する VBScript があります。このテキスト ファイルには、"Key=1234567" という行があります。このキーを取得してメッセージ ボックスに表示するスクリプトを作成しようとしています。私の問題は、一時フォルダーが仮想フォルダーであり、ファイルを通常のファイルのように読み取ることができないことです。

       Const TEMPORARY_INTERNET_FILES = &H20&


    Dim WshShell = CreateObject("WScript.Shell")



    Dim objShell = CreateObject("Shell.Application")
    Dim objFolder = objShell.Namespace(TEMPORARY_INTERNET_FILES)
    Dim objFolderItem = objFolder.Self





    Dim ie = CreateObject("InternetExplorer.Application")
    ie.visible = True
    ie.navigate2("myUrl")

    While (ie.busy)
        wscript.Sleep(1)
    End While

    Dim f As StreamReader
    Dim colItems = objFolder.Items
    For Each objItem In colItems

        If InStr(objItem.name, "123.txt") <> 0 Then
                            Dim sr As StreamReader = New StreamReader(Str(objFolderItem.path & "\" & objItem.name))
            Do While sr.Peek() >= 0
             dim line = sr.ReadLine()
             if(instr(line,"key")<>0) then 
                  key = line
             end if
            Loop
        End If
    Next

メッセージボックスキー

4

2 に答える 2

0

VB.NET を使用しているようです。VBScript の例を次に示します。

' Get the path to the temporary internet files folder...
strPath = objShell.Namespace(TEMPORARY_INTERNET_FILES).Self.Path

' Create an FSO...
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Check for the file's existence...
If objFSO.FileExists(strPath & "\123.txt") Then

    ' Read the first line...
    strLine = objFSO.OpenTextFile(strPath & "\123.txt").ReadLine()

    ' Split on '=' and display the second array element...
    MsgBox Split(strLine, "=")(1)

End If
于 2014-05-23T16:19:38.363 に答える
0

Temp Internet Files のファイルは通常、実際には名前が変更されます。したがって、あなたが持っていると思う名前を使用するシェルインターフェースを使用してください。

これは、エクスプローラーの詳細ビューで有効にできる列と同じです。

このスクリプトは、フォルダー内のオブジェクトのすべてのシェル プロパティをダンプします。TIFを行います。

Set objShell = CreateObject("Shell.Application")
Set Ag=Wscript.Arguments
set WshShell = WScript.CreateObject("WScript.Shell")

'32 is Temp Internet Files
Set Fldr=objShell.NameSpace(32)
'Set Fldr=objShell.NameSpace(Ag(0))
Set FldrItems=Fldr.Items
Set fso = CreateObject("Scripting.FileSystemObject")


Set DeskFldr=objShell.Namespace(16)
FName=fso.buildpath(DeskFldr.self.path, "Folder Property List.txt")


Set ts = fso.OpenTextFile(FName, 8, true)


'Getting first 40 column names by passing null
For x = 0 to 40
    t1 = t1 & Fldr.GetDetailsOf(vbnull, x) & vbtab
Next
ts.write FLDR.self.path & vbcrlf
ts.Write T1 & vbcrlf
T1=""

'getting the first 40 column values for each item
For Each FldrItem in FldrItems
    For x = 0 to 40
        t1 = t1 & Fldr.GetDetailsOf(FldrItem, x) & vbtab
    Next
    t1=t1 & vbcrlf
    ts.Write T1
    T1=""
Next

msgbox FName & "has a tab delimited list of all properties"
于 2014-05-23T20:15:07.420 に答える