今天看到蛋蛋的某個帖子的回復,一時感覺有興趣就好好看了下幫助,覺得對兩個命令有了更好的理解,在此分享一下,高手直接無視掉。
平常寫代碼的時候用run和ShellExecute感覺效果一樣,沒什么區別,這是因為運行的文件是可執行文件。
因為幫助中界定的很清楚:
復制代碼 高亮切換
run的對象只可以是exe,bat,com,或pif。這個應該不是很全,因為cmd文件應該也可以的。
所以如果不是可執行文件的話,用run就無效了。
再看ShellExecute:使用 ShellExecute API 執行一個外部程序.
也就是說利用系統本身來運行文件,所以只要系統能認識的文件,就能打開,就和雙擊操作是一樣的,不管什么文件,只要系統中雙擊能打開,那么ShellExecute就能打開。
假如系統不認識某個文件的話,那么用ShellExecute命令也會不認識,照樣會跳出“打開方式”的對話框。
你可以用以下幾個命令對比一下:
以上這個命令因為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")
以上這個命令會跳出“打開方式”對話框,因為系統不認識沒有擴展名的文件,除非你提前設定系統用什么程序來打開這類沒有擴展名的文件。