Ich fand diese Funktion auf GitHub und es funktioniert gut für das, was ich brauche, aber ich kann nicht herausfinden, wie Dateityp zu spezifizieren. Es scheint standardmäßig "alles" zu sein.VBScript BrowseForFile() -Funktion - wie Dateitypen angeben?
Function BrowseForFile()
With CreateObject("WScript.Shell")
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim tempFolder : Set tempFolder = fso.GetSpecialFolder(2)
Dim tempName : tempName = fso.GetTempName() & ".hta"
Dim path : path = "HKCU\Volatile Environment\MsgResp"
With tempFolder.CreateTextFile(tempName)
.Write "<input type=file name=f><script>f.click()" & _
";(new ActiveXObject('WScript.Shell'))" & _
".RegWrite('HKCU\\Volatile Environment\\MsgResp', f.value)" & _
";close();<" & "/" & "script>"
.Close
End With
.Run tempFolder & "\" & tempName, 1, True
BrowseForFile = .RegRead(path)
.RegDelete path
fso.DeleteFile tempFolder & "\" & tempName
End With
End Function
‚Beispiel: msgbox BrowseForFile()
Ich habe versucht, diese Zeile ändern:
.Write "<input type=file name=f ><script>f.click()" & _
";(new ActiveXObject('WScript.Shell'))" & _
".RegWrite('HKCU\\Volatile Environment\\MsgResp', f.value)" & _
";close();<" & "/" & "script>"
Um dies:
.Write "<input type=file accept=" & chr(34) & "text/plain" & chr(34) & " name=f ><script>f.click()" & _
";(new ActiveXObject('WScript.Shell'))" & _
".RegWrite('HKCU\\Volatile Environment\\MsgResp', f.value)" & _
";close();<" & "/" & "script>"
Aber immer noch nicht funktioniert. Gibt es eine Möglichkeit, diese Funktion zu verwenden und die zulässigen Dateitypen anzupassen? Ich möchte nur .csv erlauben, .txt und .log
Abgesehen: Was Sie versuchen, hier zu tun? VBScript kann nicht zuverlässig auf Webseiten verwendet werden (und funktioniert überhaupt nicht auf MSIE11 +), und Visual Basic als Ganzes ist auf dem Weg nach draußen. – duskwuff
Ich bin mir bewusst. Ich mag hauptsächlich, wie einfach es war, IE zu manipulieren, aber ich bin mir bewusst, dass ich loslassen muss ... Was empfehlen Sie als Ersatz? – Drivium