請大家先看看下面的示例代碼:
【示例代碼 shellexecuteex失敗是什么原因】

文章插圖
上面代碼十分簡單,在調用ShellExecuteEx時,我們通過SHELLEXECUTEINFO結構體傳入了兩個參數:第一個是動作謂詞(verb),另一個是需要執行此動作的目標文件 。請注意,因為這個函數體中的代碼執行完之后會立即返回,所以我們需要添加一個SEE_MASK_FLAG_DDEWAIT標志:通常情況下,ShellExecuteEx會認為當它返回之后,應用程序會維護一個消息循環 。這就可以實現函數返回之后繼續執行接下來那些必要的DDE交互,因為DDE服務器會返回對應的響應 。
但是,如果線程直接退出了,或者此線程不是一個圖形界面線程(GUI Thread),在這個例子中,這兩個條件都得到了滿足,你需要添加這個標志向操作系統表明:我這沒有實現任何的消息處理循環,所以也沒有辦法完成接下來的DDE交互 。通過設置SEE_MASK_FLAG_DDEWAIT標志,應用程序就是在告訴ShellExecuteEx:請你在返回之前完成所有的DDE交互操作 。
不管怎樣,我的本意是希望能演示如何使用動作謂詞 。因為看起來有一些朋友還沒有意識到還可以這樣玩,例如:
> shex find %windir%
此動作可以打開搜索窗口,并指定默認搜索的文件夾 。
> shex openas C:AUTOEXEC.BAT
此動作可以打開”打開方式”對話框,并指定目標文件 。
總結
其實,這事兒可以這樣理解,你對Windows做的所有圖形操作,其基石都是代碼,也即:可以通過寫代碼的方式完成各種圖形界面動作 。
來,跟我學一個單詞:programmatically 。
最后
Raymond Chen的《The Old New Thing》是我非常喜歡的博客之一,里面有很多關于Windows的小知識,對于廣大Windows平臺開發者來說,確實十分有幫助 。
本文來自:《Simple things you can do with the ShellExecuteEx function》

文章插圖
- 結合專業知識的創意條幅 橫幅代碼創意是什么
- 用法及短語示例 ringa linga什么意思
- 中郵核心成長股票基金代碼 590002分過紅嗎
- 完美國際2美女COSER大秀身材 完美國際漂亮女WX代碼嗎
- 河北省內市縣的車牌代碼 河北省內各市縣的車牌代碼
- 用法及短語示例 yxq 是什么意思
- 電腦故障代碼大全 0x00070008是什么意思
- 使用方法代碼功能 魔獸爭霸3的無敵密碼是什么
- 不動產權證和房產證有什么不同 權證代碼如何確定
- 農夫山泉首次公開發行A股股票上市輔導 農夫山泉股票代碼是多少
