Shell FileName为什么打不开文件呢
CommonDialog1.FileName 不是包含文件路径吗
shell 只能运行可执行文件,包括扩展名为exe,com,bat,cmd等等
如果需要打开文本文档
可以使用
shell "c:\windows\notepad.exe " & CommonDialog1.FileName
或者
shell "cmd /c start " & CommonDialog1.FileName
如果需要打开文本文档
可以使用
shell "c:\windows\notepad.exe " & CommonDialog1.FileName
或者
shell "cmd /c start " & CommonDialog1.FileName
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-12-14
vb中shell是用来打开[运行]程序文件的。对于各种文档文件[扩展名非exe],需要调用打开文档的专用程序,可以命令行的形式写入代码。比如"shell notepad.exe /d xx.txt"等等。
最好是调用API函数 ShellExecute 来实现此任务。
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
hwnd [Long],指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
lpOperation [String],指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
lpFile [String],想用关联程序打印或打开一个程序名或文件名
lpParameters [String],如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
lpDirectory [String],想使用的完整路径
nShowCmd [Long],定义了如何显示启动程序的常数值。
最好是调用API函数 ShellExecute 来实现此任务。
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
hwnd [Long],指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
lpOperation [String],指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
lpFile [String],想用关联程序打印或打开一个程序名或文件名
lpParameters [String],如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
lpDirectory [String],想使用的完整路径
nShowCmd [Long],定义了如何显示启动程序的常数值。
第2个回答 2008-12-15
如果不对,你可以杀了我.
shell功能很强大的,其实它什么文件都可以调用,不仅仅局限于可执行类文件,我一直这样用的:
Shell "Rundll32.exe url.dll, FileProtocolHandler 文件路径(含文件名和扩展名)", vbNormalFocus
shell功能很强大的,其实它什么文件都可以调用,不仅仅局限于可执行类文件,我一直这样用的:
Shell "Rundll32.exe url.dll, FileProtocolHandler 文件路径(含文件名和扩展名)", vbNormalFocus
第3个回答 2008-12-14
shell 是执行一个可执行文件,并不是像windows一样双击文本文件就会自动用记事本打开该文件,FileName应该是一个可执行文件!
第4个回答 2008-12-14
shell "notepad " & FileName
试一下
试一下