• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大漠落日

            while(!dead) study++;
            posts - 46, comments - 126, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            ShellExecute啟動exe程序要點

            Posted on 2010-03-16 11:10 亂78糟 閱讀(3652) 評論(0)  編輯 收藏 引用 所屬分類: C語言派系
                ShellExecute和ShellExecuteEx函數主要用于執行應用程序,它們可以接收一個文件名并能自動獲得同文件名相關的可執行文件名。此 外,它們還支持系統安全認證。如果在NT上設定了用戶的可執行權限,ShellExecute和ShellExecuteEx函數將會在創建新的進程前檢查權限CreateProcess和WinExec函數則沒有這項功能)。函數調用的流程如下:
            1. 獲得將要執行的程序名,例如test.exe。
            2. 根據程序名檢查用戶權限,如果該用戶無權操作,拒絕之。
            3. 激活全部已注冊的IshellExecuteHook擴展。
            4. 當所有擴展和權限都同意執行,準備創建新的進程。
            5. 在注冊表中查詢程序,查找路徑為:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows\CurrentVersion\App Paths\程序名,在該項下找程序的啟動路徑,如果找到,啟動并返回;如果沒找到,進入步驟6。
            6. 根據ShellExecute的設置的目錄參數查找,如果存在程序,啟動并返回;否則返回失敗。
                 步驟5和6是我再查找一個程序運行錯誤時發現的。
                 原來程序之前安裝過一次,后來更改啟動策略,不再獨立安裝而采用綠色包,結果程序中用ShellExecute啟動程序時不對,查找分析之后發現是調用了錯誤的程序,卸載之前安裝的就正常了。
                 誤打誤撞,盡然發現之前對這兩個函數理解太過膚淺,網上查了查,發現都沒有人介紹,我這里再補充我發現的2點,告誡自己以后不到萬不得已,不要使用這兩個函數啟動自己的應用程序。
            欧美熟妇另类久久久久久不卡 | 久久伊人影视| 伊人久久大香线蕉AV一区二区| 99久久国产主播综合精品| 无码人妻少妇久久中文字幕蜜桃| 亚洲国产婷婷香蕉久久久久久| 中文字幕成人精品久久不卡| 亚洲精品午夜国产VA久久成人 | A级毛片无码久久精品免费| 一本一本久久A久久综合精品| 99久久无色码中文字幕人妻| 久久精品极品盛宴观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 亚洲伊人久久大香线蕉苏妲己| 狠狠狠色丁香婷婷综合久久俺| 久久久久亚洲AV片无码下载蜜桃| 亚洲精品无码专区久久久| 亚洲AV伊人久久青青草原| 亚洲精品久久久www| 久久人妻少妇嫩草AV蜜桃| 国产偷久久久精品专区| 欧美一区二区久久精品| 久久久久亚洲AV无码专区体验| 999久久久国产精品| 久久久久亚洲AV成人网| 亚洲天堂久久久| 久久久久亚洲AV无码观看| 久久不见久久见免费视频7| 99久久精品免费看国产免费| 久久综合鬼色88久久精品综合自在自线噜噜| 国产69精品久久久久9999APGF| 久久婷婷国产综合精品 | 久久亚洲国产精品123区| 久久久久99这里有精品10| 久久精品国产亚洲AV电影| 国产精品伊人久久伊人电影 | 亚洲人成伊人成综合网久久久| 国产午夜精品理论片久久影视 | 久久99精品久久久久久野外 | 国产精品9999久久久久| 大香网伊人久久综合网2020|