文档详情

VC中调用cmd命令四种方式.doc

发布:2017-07-05约2.56万字共5页下载文档
文本预览下载声明
1. system方法: 原型: HYPERLINK /admin/article/article_add.php \o view plain view plain int?__cdecl?system(const?char?*);?? 例如: HYPERLINK /admin/article/article_add.php \o view plain view plain system(ipconfig);?? 2. WinExec方法: 相比于system方法,WinExec方法多了一个窗口参数: 原型: HYPERLINK /admin/article/article_add.php \o view plain view plain UINT?WinExec(?? ??LPCSTR?lpCmdLine,?? ??UINT?uCmdShow?? );?? 例如: WinExec(ipconfig, SW_SHOW); 参数可以是:SW_SHOW,,SW_SHOWMAXIMIZED,SW_SHOWMINIMIZED等等,总体用法是差不多的。 3. ShellExecute方法: 这个方法主要用于open,edit,find等方法的操作: 原型: HYPERLINK /admin/article/article_add.php \o view plain view plain HINSTANCE?ShellExecute(???????? ????HWND?hwnd,?? ????LPCTSTR?lpOperation,?? ????LPCTSTR?lpFile,?? ????LPCTSTR?lpParameters,?? ????LPCTSTR?lpDirectory,?? ????INT?nShowCmd?? );?? 例如: HYPERLINK /admin/article/article_add.php \o view plain view plain ShellExecute(NULL,open,abc.xls,NULL,NULL,SW_HIDE);//打开默认路径的abc.xls文件?? 4.可回显的调用方法: 这个方法步骤比较复杂,是通过创建一个新进程来模拟cmd命令行,将写命令行和回显通过管道的方式呈现。 例如: HYPERLINK /admin/article/article_add.php \o view plain view plain void?CTestMFCDlg::OnOK()??? {?? ????//?TODO:?Add?extra?validation?here?? ????SECURITY_ATTRIBUTES?sa;?? ????HANDLE?hRead,hWrite;?? ?? ????sa.nLength?=?sizeof(SECURITY_ATTRIBUTES);?? ????sa.lpSecurityDescriptor?=?NULL;?? ????sa.bInheritHandle?=?TRUE;?? ?? ????if(!CreatePipe(hRead,hWrite,sa,0))?? ????{?? ????????MessageBox(CreatePipe?Failed);?? ????????return;?? ????}?? ?? ????STARTUPINFO?si;?? ????PROCESS_INFORMATION?pi;?? ?? ????ZeroMemory(si,sizeof(STARTUPINFO));?? ????si.cb?=?sizeof(STARTUPINFO);?? ????GetStartupInfo(si);?? ????si.hStdError?=?hWrite;?? ????si.hStdOutput?=?hWrite;?? ????si.wShowWindow?=?SW_HIDE;?? ????si.dwFlags?=?STARTF_USESTDHANDLES?|?STARTF_USESHOWWINDOW;?? ?? ????char?cmdline[200];?? ????CString?tmp,stredit2;?? ????GetDlgItemText(IDC_EDIT_CMD,stredit2);?? ????tmp.Format(cmd?/C?%s,stredit2);?? ????sprintf(cmdline,%s,tmp);?? ?? ????if(!CreateProcess(NULL,cmdline,NUL
显示全部
相似文档