国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VC中調(diào)用其他程序的方法(函數(shù))_一滴水里的海
WinExec,ShellExecuteCreateProcess

可以實現(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代替,它可以指定進程的安全屬性,繼承信息,類的優(yōu)先級等等。如果我們要得到足夠多的關(guān)于新的進程的信息,控制新的進程的細(xì)節(jié)屬性,若要達到這些目的,我們就需要使用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", "http://www.google.com",/ 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)建的進程和線程的安全屬性,如果為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,    // 運行該進程的初始目錄

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

       LPPROCESS_INFORMATION lpProcessInformation //用于在進程創(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);

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1484984

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows 2000系統(tǒng)編程——進程的創(chuàng)建
VC 調(diào)用cmd命令總結(jié)
ShellExecute與ShellExecuteEx的用法
如何打開一個程序或創(chuàng)建一個進程 (適用與執(zhí)行CMD命令)
c/c++代碼中執(zhí)行cmd命令
WinExec(exePath,sw
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服