我需要在命令行应用程序上快速编写一个简单的GUI。需要两个步骤:
我发现了previous post,但试图让上述(1)工作似乎是一项疯狂的任务。
确实BrowseForFolder似乎仅适用于某些奇怪的情况,您只能BIF_BROWSEINCLUDEFILES
使用*.pdf
和/或*.txt
(试用和错误)。如果我选择*.dll
和/或*.jpg
(不要问),我会收到错误。
相反,我放弃了这种方法并遵循another one,在这种情况下(objIE.Document.all.FileSelect
),只返回所选文件的名称,路径似乎由于某种原因,始终设置为"c:/fakepath"
。所以我再次错过了能够将其传递给命令行app的完整路径。
是否有任何理智的方法(< 10行代码)得到(1)和(2)在Win7 / 64bits(VBS,HTA ......)上工作?
答案 0 :(得分:1)
不知道人们是否仍然对BrowseForFolder文件选择问题感兴趣,但这是我发现的。 我在使用& H4000 / BIF_BROWSEINCLUDEFILES选择使用BrowseForFolder的文件时遇到了同样的问题。我可以使用.docx而不是.doc文件返回,就像你说的.pdf文件一样。 对我来说.txt不会返回任何内容,因为我正在编写的脚本不需要WMI Backup .rec文件,导致出现此错误信息: -
Error: Unspecified error
Code: 80004005
Source: (null)
在查看了其他解决方案之后,我回到这个解决方案作为我的首选,而且它正在努力,因为它不想工作。所以在痛苦的一端似乎很容易。 为了识别我的.rec文件,我将其添加到注册表中: -
[HKEY_CLASSES_ROOT\.rec]
@="WMI.Backup"
[HKEY_CLASSES_ROOT\WMI.Backup]
@="WMI Backup"
"BrowseInPlace"="1"
要识别.txt文件,我将其添加到注册表中: -
[HKEY_CLASSES_ROOT\txtfile]
"BrowseInPlace"="1"
所以“BrowseInPlace”=“1”似乎是金块。
似乎非常简单,我确信这个解决方案已经出现在某个地方,但我从来没有遇到过它,所以我认为我会把它放到网上。
我有兴趣发现它适用于其他人,因为我担心这个问题可能会让我发疯,但仍然无法相信它似乎有效。 希望这会有所帮助。
答案 1 :(得分:-1)
以下是3种不同的方法:
http://www.robvanderwoude.com/vbstech_ui_fileopen.php