run 和 ShellExecute 都可以打开exe可执行文件,当需要打开特定文件的时候 ShellExecute 就显得更为方便了。
因为帮助中界定的很清楚:
Run ;运行外部程序.
Run ( “程序” [, “工作目录” [, 显示标志[, 可选标志]]] )
run的对象只可以是exe、bat、com或pif文件,还可以运行cmd命令。
所以如果不是可执行文件的话,用run就无效了。
FileOpen(“文件名”[, 模式 = 0])
[可选] 文件打开模式.
可以是以下值的组合:
$FO_READ (0) = 只读模式(默认)
$FO_APPEND (1) = 写入模式(追加数据到文件尾部)
$FO_OVERWRITE (2) = 写入模式(删除之前的内容)
$FO_CREATEPATH (8) = 如果目标目录不存在就创建(见备注).
$FO_BINARY (16) = 强制二进制模式(见备注).
$FO_UNICODE 或 $FO_UTF16_LE (32) = 使用 Unicode UTF16 小编码读写模式.
$FO_UTF16_BE (64) = 使用 Unicode UTF16 大编码读写模式.
$FO_UTF8 (128) = 使用 Unicode UTF8 (带 BOM)读写模式.
$FO_UTF8_NOBOM (256) = 使用 Unicode UTF8 (无 BOM)读写模式.
$FO_ANSI (512) = 使用 ANSI 读写模式.
$FO_UTF16_LE_NOBOM (1024) = 使用 Unicode UTF16 (无 BOM) 小编码读写模式.
$FO_UTF16_BE_NOBOM (2048) = 使用 Unicode UTF16 (无 BOM) 大编码读写模式.
$FO_FULLFILE_DETECT (16384) = 读取没有 BOM 的打开文件时, 完整检测文件确定它是否为 UTF8 或 UTF16 编码.
如果不使用这一模式, 则因性能方面原因只会检测文件初始部分(最多 64 KB).
文件夹路径必须存在(除非指定模式 $FO_CREATEPATH (8) – 见备注).
ShellExecute(“文件名”[, “参数”[, “工作目录”[, “verb(动作)”[, 显示]]]])
ShellExecute就是使用 ShellExecute API 执行一个外部程序.
也就是说利用系统本身来运行文件,所以只要系统能认识的文件,就能打开,就和双击操作是一样的,不管什么文件,只要系统中双击能打开,那么ShellExecute就能打开。
假如系统不认识某个文件的话,那么用ShellExecute命令也会不认识,照样会跳出“打开方式”的对话框。
你可以用以下几个命令对比一下:
比如需要打开c:\abc.txt文件
run("c:\abc.txt")
以上这个命令因为txt文件不是可执行文件,所以没有效果,无法打开。
只能通过记事本程序打开,打开方式有3种。
run("notepad.exe c:\abc.txt") FileOpen("c:\abc.txt",1) shellExecute("c:\abc.txt")
如果需要打开abc.docx 或者abc.xlsx文档,那run命令就很难去实现了,反正我是没做到。
而shellExecute命令非常简单
shellExecute("c:\abc.docx") shellExecute("c:\abc.xlsx")
补充:
shellExecute 还可以打开文件夹目录
shellExecute("文件夹路径")