• <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>
            隨筆 - 89  文章 - 118  trackbacks - 0
            <2009年11月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            留言簿(16)

            隨筆分類(56)

            隨筆檔案(89)

            文章分類

            推薦博客

            搜索

            •  

            最新隨筆

            最新評(píng)論

            閱讀排行榜


            假設(shè)需要執(zhí)行的程序如下:


            int main(int argc, char* argv[])
            {
                
            return argc;
            }


            執(zhí)行它,并取得其返回值,我寫(xiě)了一個(gè)函數(shù)如下:

            DWORD         WinExecAndWait32(    LPCTSTR lpszAppPath,   // 執(zhí)行程序的路徑
                                            LPCTSTR lpParameters,  // 參數(shù)
                                            LPCTSTR lpszDirectory, // 執(zhí)行環(huán)境目錄
                                            DWORD dwMilliseconds)  // 最大等待時(shí)間, 超過(guò)這個(gè)時(shí)間強(qiáng)行終止
            {
                SHELLEXECUTEINFO ShExecInfo 
            = {0};
                ShExecInfo.cbSize    
            = sizeof(SHELLEXECUTEINFO);
                ShExecInfo.fMask    
            = SEE_MASK_NOCLOSEPROCESS;
                ShExecInfo.hwnd        
            = NULL;
                ShExecInfo.lpVerb    
            = NULL;
                ShExecInfo.lpFile    
            = lpszAppPath;        
                ShExecInfo.lpParameters 
            = lpParameters;    
                ShExecInfo.lpDirectory    
            = lpszDirectory;
                ShExecInfo.nShow    
            = SW_HIDE;
                ShExecInfo.hInstApp 
            = NULL;    
                ShellExecuteEx(
            &ShExecInfo);

                
            // 指定時(shí)間沒(méi)結(jié)束
                if (WaitForSingleObject(ShExecInfo.hProcess, dwMilliseconds) == WAIT_TIMEOUT)
                {    
            // 強(qiáng)行殺死進(jìn)程
                    TerminateProcess(ShExecInfo.hProcess, 0);
                    
            return 0;    //強(qiáng)行終止
                }

                DWORD dwExitCode;
                BOOL bOK 
            = GetExitCodeProcess(ShExecInfo.hProcess, &dwExitCode);
                ASSERT(bOK);

                
            return dwExitCode;
            }

            我上傳了兩個(gè)工程,希望對(duì)大家有所幫助!

            http://www.shnenglu.com/Files/humanchao/ExecExe.rar

            posted on 2007-12-28 11:20 胡滿超 閱讀(5969) 評(píng)論(4)  編輯 收藏 引用

            FeedBack:
            # re: VC中怎么執(zhí)行一個(gè)應(yīng)用程序,并取得應(yīng)用程序的返回值 2007-12-28 13:31 FongLuo
            很有參考價(jià)值哦。  回復(fù)  更多評(píng)論
              
            # re: VC中怎么執(zhí)行一個(gè)應(yīng)用程序,并取得應(yīng)用程序的返回值 2007-12-28 13:44 胡滿超
            @FongLuo
            謝謝支持!  回復(fù)  更多評(píng)論
              
            # re: VC中怎么執(zhí)行一個(gè)應(yīng)用程序,并取得應(yīng)用程序的返回值 2007-12-29 11:41 teli
            如果被調(diào)用程序掛掉了怎么辦  回復(fù)  更多評(píng)論
              
            # re: VC中怎么執(zhí)行一個(gè)應(yīng)用程序,并取得應(yīng)用程序的返回值 2007-12-29 14:13 胡滿超
            我沒(méi)有想到怎樣去檢查掛掉的程序,在實(shí)際應(yīng)用中我是采用估算一個(gè)最大執(zhí)行時(shí)間,如果超過(guò)此時(shí)間,即強(qiáng)行終止程序。

            因?yàn)橐〉米舆M(jìn)程執(zhí)行結(jié)束的返回值,所以要用上面的方法。如果不要求取得返回值,把:

            ShellExecuteEx(&ShExecInfo);

            以下的代碼去掉就是了,主進(jìn)程依然可以繼續(xù)下向執(zhí)行。

            如果不考慮子進(jìn)程的執(zhí)行時(shí)間,即要求主進(jìn)程一直等待子進(jìn)程結(jié)束,那就把:

            WaitForSingleObject(ShExecInfo.hProcess, dwMilliseconds);

            改成

            WaitForSingleObject(ShExecInfo.hProcess,INFINITE);

            不過(guò)這樣做子進(jìn)程一旦掛了,主進(jìn)程也就一直停在那里了。  回復(fù)  更多評(píng)論
              

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            人妻无码精品久久亚瑟影视| 久久久噜噜噜久久中文字幕色伊伊| 思思久久99热只有频精品66| 一级做a爰片久久毛片看看| 国内精品综合久久久40p| 久久精品无码一区二区三区| 狠狠人妻久久久久久综合| 无码八A片人妻少妇久久| 亚洲∧v久久久无码精品| 国产亚洲色婷婷久久99精品91| 久久国产欧美日韩精品免费| 久久发布国产伦子伦精品 | 色欲av伊人久久大香线蕉影院 | 国产99久久久国产精品~~牛| 无码任你躁久久久久久| 国产精品美女久久久久久2018| 免费一级欧美大片久久网| 久久久国产精品亚洲一区| 日本欧美国产精品第一页久久| 国产成人久久AV免费| 一本一本久久a久久综合精品蜜桃| 久久电影网一区| 麻豆一区二区99久久久久| 久久免费99精品国产自在现线| 久久天堂AV综合合色蜜桃网 | 国产精品久久久久jk制服| 欧美国产成人久久精品| 久久久久国色AV免费看图片| 免费观看久久精彩视频| 99久久国语露脸精品国产| 亚洲国产欧洲综合997久久| 亚洲а∨天堂久久精品| 久久精品国产精品亜洲毛片| 国产精品免费久久久久影院| 94久久国产乱子伦精品免费| 爱做久久久久久| 中文字幕久久欲求不满| 久久996热精品xxxx| 久久国产精品二国产精品| 久久影视国产亚洲| 色天使久久综合网天天|