VBS中如何产生和双击文件一模一样的效果

cyy_041 2008-11-25 10:50:05
---------------------------------------------------------------------
双击的时候:如果是未知类型的文件,会跳出“请选择打开方式“对话框
---------------------------------------------------------------------
用objWShell.Run "rundll32.exe url.dll" & ",FileProtocolHandler " & file, 1, False,如果是未知类型的文件,没反应。
---------------------------------------------------------------------
请高手检验一下,在D:盘新建一个 1.abc,然后
执行 objWShell.Run "rundll32.exe url.dll" & ",FileProtocolHandler " & "d:\1.abc", 1, False 没反应。而双击就不同,会跳出“请选择打开方式“对话框。在一个涉及到文件管理程序中用到,很是令我头疼,请赐教,谢谢了。
...全文
101 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Microogle 2008-11-30

Set oShell = CreateObject("Shell.Application")
Set oDir = oShell.NameSpace("d:\")
oDir.Items.Item("test.xxx").Verbs.Item(0).DoIt


回复
Microogle 2008-11-30
假定在桌面上存在Test.xxx:

Set oShell = CreateObject("Shell.Application")
Set oDir = oShell.NameSpace(0)
For Each x In oDir.Items
if "test.xxx" = LCase(x.Name) Then Set oFile = x
Next
oFile.Verbs.Item(0).DoIt
回复
blackfire9 2008-11-30
有三个方法解决你的问题:
1,通过文件扩展名检查注册表,如果没有关联程序则调用“打开方式”对话框
2,在.RUN前先On Error Resume Next 然后捕捉 Err 对象的 Number 属性代码,如果是无关联错误就调用“打开方式”对话框。
3,呵呵,最简单的方法:objWShell.Run "cmd /c d:\1.abc",0,true
回复
cyy_041 2008-11-25
1楼能具体说一下吗?mark是怎么回事
回复
android2008 2008-11-25
mark
回复
cyy_041 2008-11-25
回5楼
是的,首先打开文件,如果是没有注册默认打开方式的文件时弹出打开方式对话框。
难点是打开文件时如何判断有没有注册默认打开方式。
如何弹出打开方式对话框我已知道。rundll32.exe shell32.dll OpenAs_RunDLL "file"

回复
pzhuyy 2008-11-25
一般会提示80070483错误!

没有应用程序与此操作的指定文件有关联

你如果要用打开方式的话,你可以把这些个未指定关联的后缀名全部在注册表中与你想选择的打开方式关联起来:)
回复
pzhuyy 2008-11-25
你是想实现用vbs运行没有注册默认打开方式的文件时弹出打开方式对话框?
回复
cyy_041 2008-11-25
在本论坛中有类似的问题,参照http://topic.csdn.net/t/20050114/17/3726738.html
但上面这个问题是用VB解决的,我现在在VBS中有同样的问题,在VBS中应该如何解决
回复
Dogfish 2008-11-25
题目不是很明白。
回复
相关推荐
发帖
vbScript
创建于2007-09-28

4001

社区成员

它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
申请成为版主
帖子事件
创建了帖子
2008-11-25 10:50
社区公告
暂无公告