<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    三個SDK函數(shù): WinExec,ShellExecute ,CreateProcess可以實現(xiàn)調(diào)用其他程序的要求,其中以WinExec最為簡單,ShellExecute比WinExec靈活一些,CreateProcess最為復(fù)雜。
    ??? WinExec 兩個參數(shù),前一個指定路徑,后一個指定顯示方式。
    ??? ShellExecute 可以指定工作目錄,并且還可以尋找文件的關(guān)聯(lián)直接打開不用加載與文件關(guān)聯(lián)的應(yīng)用程序,ShellExecute還可以打開網(wǎng)頁,啟動相應(yīng)的郵件關(guān)聯(lián)發(fā)送郵件等等。
    ??? CreateProcess 一共有十個參數(shù),不過大部分都可以用NULL代替,它可以指定進(jìn)程的安全屬性,繼承信息,類的優(yōu)先級等等。如果我們要得到足夠多的關(guān)于新的進(jìn)程的信息,控制新的進(jìn)程的細(xì)節(jié)屬性,若要達(dá)到這些目的,我們就需要使用CreateProcess函數(shù)了。

    三個SDK函數(shù)( WinExec、ShellExec、CrateProcess )的語法:


    WinExec

    這個函數(shù)最簡單,只有兩個參數(shù),原型如下:


    ????? UINT WinExec(

    ????? LPCSTR lpCmdLine,?? // 命令路徑

    ????? UINT uCmdShow????? // 顯示方式

    ????? ;

    使用方法如下:

    WinExec("Notepad.exe", SW_SHOW); // 打開記事本
    WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打開Test.exe
    需要注意的是若用 SW_SHOWMAXMIZED 方式去加載一個無最大化按鈕的程序,譬如Neterm,Calc 等等,就不會出現(xiàn)正常的 窗體,但是已經(jīng)被加到任務(wù)列表里了。


    ShellExecute

    原型如下:

    ????? HINSTANCE ShellExecute(

    ????? HWND hwnd,?????????? //父窗口句柄

    ????? LPCTSTR lpOperation,?? //操作, 打開方式 "edit","explore","open","find","print","NULL"

    ????? LPCTSTR lpFile,???????? //文件名,前面可加路徑

    ????? LPCTSTR lpParameters,?? //參數(shù)

    ????? LPCTSTR lpDirectory,??? //默認(rèn)文件夾

    ????? INT nShowCmd????????? //顯示方式

    );

    使用方法如下:

    ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL); // 打開C:\Test.txt 文件
    ShellExecute(NULL, "open", " NULL, NULL, SW_SHOWNORMAL); // 打開網(wǎng)頁www.google.com
    ShellExecute(NULL,"explore", "D:\\C++",NULL,NULL,SW_SHOWNORMAL); // 打開目錄D:\C++
    ShellExecute(NULL,"print","C:\\Test.txt",NULL,NULL, SW_HIDE); // 打印文件C:\Test.txt
    ShellExecute不支持定向輸出。


    CreateProcess

    原型如下:

    ????? BOOL CreateProcess(

    ????? LPCTSTR lpApplicationName, //執(zhí)行程序名

    ????? LPTSTR lpCommandLine, // 參數(shù)行

    ????? //下面兩個參數(shù)描述了所創(chuàng)建的進(jìn)程和線程的安全屬性,如果為NULL則使用默認(rèn)的安全屬性

    ????? LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes

    ????? LPSECURITY_ATTRIBUTES lpThreadAttributes,?? // thread security attributes

    ????? BOOL bInheritHandles, // 繼承標(biāo)志

    ????? DWORD dwCreationFlags, // 創(chuàng)建標(biāo)志

    ????? LPVOID lpEnvironment, // 環(huán)境變量

    ????? LPCTSTR lpCurrentDirectory,?? // 運(yùn)行該進(jìn)程的初始目錄

    ????? LPSTARTUPINFO lpStartupInfo, // 用于在創(chuàng)建子進(jìn)程時設(shè)置各種屬性

    ????? LPPROCESS_INFORMATION lpProcessInformation //用于在進(jìn)程創(chuàng)建后接受相關(guān)信息

    ????? ;

    使用方法如下:
    ???????????? PROCESS_INFORMATION pi;
    ?????????????????????? STARTUPINFO si;
    ?????????????????????? memset(&si,0,sizeof(si));
    ?????????????????????? si.cb=sizeof(si);
    ????????????????????? si.wShowWindow=SW_SHOW;
    ?????????????????????? si.dwFlags=STARTF_USESHOWWINDOW;
    ?????????????????????? bool fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);


    可以看出,通過上面的幾個不同的方法,都可以實現(xiàn)在應(yīng)用程序中打開其他應(yīng)用程序的目的,其中有些方法可能會麻煩一點,所以就需要我們根據(jù)不同的目的去選擇最適合自己的方法去實現(xiàn)自己的目的!

    ?

    關(guān)于三個SDK函數(shù): WinExec, ShellExecute,CreateProcess 的其他注意事項:

    1、定義頭文件

    在頭文件stdafx.h中必須定義以下兩個頭文件:

    #include <shlobj.h> // 可替換為 windows.h
    #include <shellapi.h>
    如果定義了頭文件 #include <windows.h>的話就不必定義 #include <shlobj.h>了,"windows.h" 不光是包含了"shellapi.h",它還定義了許多數(shù)據(jù)類型,如果沒有這些數(shù)據(jù)類型,shellapi.h本身會出錯。

    2、定義路徑

    C++中所表示的路徑要用 " \\ "而不是平常所用的" \ ",所以以上三個函數(shù)表示路徑都為:

    Disk:\\Directory\\...\\File name

    WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);

    ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
    bool fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

    ?

    posted on 2009-06-16 16:02 -274°C 閱讀(2279) 評論(0)  編輯  收藏 所屬分類: C++

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網(wǎng)站

    關(guān)注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914554
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 十八禁视频在线观看免费无码无遮挡骂过 | 免费一级毛片无毒不卡| 成全视频在线观看免费| 亚洲一区二区三区影院| 日韩在线播放全免费| 青青久久精品国产免费看| 四虎国产精品免费视| 久久九九久精品国产免费直播| 色影音免费色资源| 亚洲日本VA午夜在线影院| 国产综合亚洲专区在线| 少妇性饥渴无码A区免费 | 久久精品亚洲一区二区三区浴池| 免费一区二区三区在线视频| 亚洲av永久无码精品秋霞电影影院| 亚洲首页在线观看| 99久热只有精品视频免费观看17| 青青视频观看免费99| 亚洲 欧洲 视频 伦小说| 色噜噜AV亚洲色一区二区| 午夜高清免费在线观看| 久操免费在线观看| 亚洲av无码一区二区三区观看| 在线观看的免费网站无遮挡 | 在线亚洲v日韩v| 亚洲韩国在线一卡二卡| 国产精品亚洲综合专区片高清久久久| 国产亚洲精品美女2020久久| 亚洲视频免费观看| 亚洲精品无码不卡在线播放HE| 亚洲天然素人无码专区| 国产小视频在线观看免费| 8x8x华人永久免费视频| 中文字幕免费在线视频| 国产精品亚洲а∨天堂2021| 亚洲高清视频在线播放| 亚洲av无码专区国产乱码在线观看| 免费v片在线观看视频网站| 国产乱妇高清无乱码免费| 国产成人va亚洲电影| 亚洲AV永久无码精品网站在线观看|