[代碼] ShellExecute調(diào)用外部程序_VS2017

簡介

ShellExecute的功能是運(yùn)行一個外部程序(或者是打開一個已注冊的文件琐谤、打開一個目錄泡一、打印一個文件等等)田炭,并對外部程序有一定的控制授瘦。有幾個API函數(shù)都可以實(shí)現(xiàn)這些功能近她,但是在大多數(shù)情況下ShellExecute是更多的被使用的叉瘩,同時它并不是太復(fù)雜。

示例

  1. 宿主程序
#include "stdafx.h"
#include "windows.h "                      
#include "shellapi.h " 

int main()
{
    char filePath[MAX_PATH];
    GetCurrentDirectory(1000, filePath);  //得到當(dāng)前工作路徑
    strcat_s(filePath, "\\ToolConsole.exe"); //文件名

    SHELLEXECUTEINFO  ShExecInfo = { 0 };
    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
    ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = _T("open");
    ShExecInfo.lpFile = _T(filePath); //文件名
    ShExecInfo.lpParameters = _T("123456 HelloWorld!");
    ShExecInfo.lpDirectory = NULL;
    ShExecInfo.nShow = SW_SHOW;
    ShExecInfo.hInstApp = NULL;
    printf("shell execute exe.\n");
    ShellExecuteEx(&ShExecInfo);
    printf("wait for exe to execute.\n");
    WaitForSingleObject(ShExecInfo.hProcess, INFINITE); // 等待進(jìn)程結(jié)束
    printf("exe execute finished.\n");
    return 0;
}
  1. 外部程序
// ToolConsole.cpp: 定義控制臺應(yīng)用程序的入口點(diǎn)粘捎。
//
#include "stdafx.h"

// argv[0]: "ToolConsole.exe"
// argv[1]: int
// argv[2]: 字符串
int main(int argc, char* argv[])
{
    if (argc != 3)
    {
        return 0;
    }
    int int_value;
    char* str_value = argv[2];
    sscanf_s(argv[1], "%d", &int_value);
    
    printf("int value = %d \n", int_value);
    printf("str value = %s \n", str_value);

    getchar();
    return 0;
}
  1. 程序運(yùn)行


    等待外部程序結(jié)束
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薇缅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子攒磨,更是在濱河造成了極大的恐慌泳桦,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娩缰,死亡現(xiàn)場離奇詭異灸撰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拼坎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門浮毯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人演痒,你說我怎么就攤上這事亲轨。” “怎么了鸟顺?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵惦蚊,是天一觀的道長器虾。 經(jīng)常有香客問我,道長蹦锋,這世上最難降的妖魔是什么兆沙? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮莉掂,結(jié)果婚禮上葛圃,老公的妹妹穿的比我還像新娘。我一直安慰自己憎妙,他們只是感情好库正,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著厘唾,像睡著了一般褥符。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抚垃,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天喷楣,我揣著相機(jī)與錄音,去河邊找鬼鹤树。 笑死铣焊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罕伯。 我是一名探鬼主播曲伊,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捣炬!你這毒婦竟也來了熊昌?” 一聲冷哼從身側(cè)響起绽榛,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤湿酸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后灭美,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體推溃,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年届腐,在試婚紗的時候發(fā)現(xiàn)自己被綠了铁坎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡犁苏,死狀恐怖硬萍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情围详,我是刑警寧澤朴乖,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布祖屏,位于F島的核電站,受9級特大地震影響买羞,放射性物質(zhì)發(fā)生泄漏袁勺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一畜普、第九天 我趴在偏房一處隱蔽的房頂上張望期丰。 院中可真熱鬧,春花似錦吃挑、人聲如沸钝荡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽化撕。三九已至,卻和暖如春约炎,著一層夾襖步出監(jiān)牢的瞬間植阴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工圾浅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掠手,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓狸捕,卻偏偏與公主長得像喷鸽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子灸拍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 動態(tài)調(diào)用動態(tài)庫方法c/c++linuxwindows 關(guān)于動態(tài)調(diào)用動態(tài)庫方法說明 一做祝、 動態(tài)庫概述 1、 動態(tài)庫的...
    KINGZ1993閱讀 13,919評論 0 10
  • C語言中內(nèi)存分配 在任何程序設(shè)計環(huán)境及語言中鸡岗,內(nèi)存管理都十分重要混槐。在目前的計算機(jī)系統(tǒng)或嵌入式系統(tǒng)中,內(nèi)存資源仍然是...
    一生信仰閱讀 1,165評論 0 2
  • 基本概念 圖像的形狀可以看成是圖像的輪廓轩性。圖像形狀的表示方式有:鏈碼声登、游程碼、freeman碼等揣苏,還有簡化方式:B...
    jjkke88閱讀 2,233評論 0 0
  • 今生安度 無憂如初
    豬兔子0518閱讀 183評論 0 0
  • 我的測試環(huán)境配置有4臺brick悯嗓。這次建的卷為dispersed卷(類似raid5) gluster官方建議最佳配...
    高機(jī)動老王閱讀 1,612評論 0 0