建立進程的三種方式

來源:互聯網
上載者:User

http://hi.baidu.com/magicfuzzx/item/284b1dd7c3087c0a20e2500e

Shellapi的特色,就是先定義一個結構體,然後就調用一個函數,而這個函數的參數通常就是這個結構體的指標,比如本例中的SHELLEXECUTEINFO結構體。

void CProcessDlg::OnBnClickedButtonShell()

{

       // TODO: 在此添加控制項通知處理常式代碼

       SHELLEXECUTEINFOShExecInfo= {0}; 

       ShExecInfo.cbSize= sizeof(SHELLEXECUTEINFO);

       ShExecInfo.fMask= SEE_MASK_NOCLOSEPROCESS; 

       ShExecInfo.hwnd= NULL; 

       ShExecInfo.lpVerb= NULL; 

       ShExecInfo.lpFile= _T("C:\\ProgramFiles\\Internet Explorer\\iexplore.exe"); 

       ShExecInfo.lpParameters= _T("www.google.com.hk");

       ShExecInfo.lpDirectory= NULL; 

       ShExecInfo.nShow= SW_SHOW; 

       ShExecInfo.hInstApp= NULL; 

       ShellExecuteEx(&ShExecInfo);

}

 

可能初學者認為CreateProcee函數會有點複雜,其實也就是一個路徑,一個啟動參數,還有兩個結構體。

void CProcessDlg::OnBnClickedButtonCreate()

{

       // TODO: 在此添加控制項通知處理常式代碼

       STARTUPINFOsi;

       ZeroMemory(&si,sizeof(si));

       si.cb = sizeof(si);

       PROCESS_INFORMATIONpi;

       ZeroMemory(&pi,sizeof(pi));

       LPCTSTRlpPath= _T("C:\\ProgramFiles\\Internet Explorer\\iexplore.exe");

       LPTSTRlpCmdline= _T("http://www.google.com.hk");//網址前面加個空格

       CreateProcess(lpPath,lpCmdline,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);

}

 

WinExec函數應該只支援多位元組,所以Unicode下面會有問題的。

void CProcessDlg::OnBnClickedButtonWinexec()

{

       // TODO: 在此添加控制項通知處理常式代碼

       TCHARszPath[MAX_PATH] = _T("C:\\Program Files\\InternetExplorer\\iexplore.exe");

       TCHARszCmdline[]= _T("http://www.google.com.hk");

       _tcscat_s(szPath,MAX_PATH,szCmdline);

       WinExec(szPath,SW_NORMAL);

}

 

這個閱讀效果更好:http://blog.csdn.net/MagicFuzzX/archive/2011/06/09/6533045.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.