run和ShellExecute的区别
本帖最后由 haijie1223 于 2011-9-9 22:50 编辑今天看到蛋蛋的某个帖子的回复,一时感觉有兴趣就好好看了下帮助,觉得对两个命令有了更好的理解,在此分享一下,高手直接无视掉。
平常写代码的时候用run和ShellExecute感觉效果一样,没什么区别,这是因为运行的文件是可执行文件。
因为帮助中界定的很清楚:Run ;运行外部程序.
Run ( "程序" [, "工作目录" [, 显示标志[, 可选标志]]] )
;参数:程序 程序所在的完整路径(文件格式为 EXE,BAT,COM 或 PIF).
run的对象只可以是exe,bat,com,或pif。这个应该不是很全,因为cmd文件应该也可以的。
所以如果不是可执行文件的话,用run就无效了。
再看ShellExecute:使用 ShellExecute API 执行一个外部程序.
也就是说利用系统本身来运行文件,所以只要系统能认识的文件,就能打开,就和双击操作是一样的,不管什么文件,只要系统中双击能打开,那么ShellExecute就能打开。
假如系统不认识某个文件的话,那么用ShellExecute命令也会不认识,照样会跳出“打开方式”的对话框。
你可以用以下几个命令对比一下:
FileOpen("c:\1.txt",1)
run("c:\1.txt")
以上这个命令因为txt文件不是可执行文件,所以没有效果,打不开。
FileOpen("c:\1.txt",1)
shellExecute("c:\1.txt")
以上这个命令,因为系统一般都有记事本程序来打开txt文件,所以这个会有效果。能打开1.txt
FileOpen("c:\1.txt",1)
FileMove("c:\1.txt","c:\1",1)
ShellExecute("c:\1")
以上这个命令会跳出“打开方式”对话框,因为系统不认识没有扩展名的文件,除非你提前设定系统用什么程序来打开这类没有扩展名的文件。
我原来也只是乱用一气,今天总算了解一些用法,发表一下,供和我一样的小菜学习分享。
欢迎拍砖! 了解,谢谢分享 好贴子,谢谢分享! run只能运行EXE, BAT, COM, 和PIF程序,而以别的后缀为名的可执行文件运行不了.
shellexecute可以执行所有可执行的程序,如txt,excel,word etc.exe.com....
楼下继续补充 谢谢分享,合适菜鸟,我就是。 谢谢,正适合我这样的菜鸟 嗯。谢了。欢迎多发些类似的贴。 作一个重要补充,如果不对请指正。
1:Run("winword.exe")
2:ShellExecute("winword.exe")
在上面中,1行脚本不会成功,因为run不会在当前路径中找到winword.exe。
2行脚本会得到执行,ShellExecute会到系统默认搜索路径中查找可执行文件,并打开。 学习下,多谢分享 谢谢分享,很适合俺们这种菜鸟! 好贴子,谢谢分享!
和8喽的 回复 1# haijie1223
飘过,学习了。谢谢 学习了,了解一下, 正适合我这样的菜鸟 感谢分享,说得太清楚了! 原来如此,学习了