关于ShellExecute怎么调用cmd并传递参数

wanwanfd 2011-04-13 02:02:22
HINSTANCE hinst;
hinst=ShellExecute(NULL,NULL,_T("cmd.exe"),_T("msconfig"),NULL,SW_SHOWNORMAL);


我想调用cmd.exe 并输入参数 msconfig 可是这个只能把cmd掉出来,但是不执行msconfig呀 怎么做呢?
谢谢了
...全文
762 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CppCoder 2011-04-13
  • 打赏
  • 举报
回复
cmd /C msconfig
cmd /k msconfig.cmd (msconfig.cmd 是批处理文件)

学习了


hongwenjun 2011-04-13
  • 打赏
  • 举报
回复
cmd /k msconfig.cmd
msconfig.cmd 是批处理文件

  // 执行批处理文件
char szCommandLine[] = "cmd /k CBStudy.cmd";
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;

si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效
si.wShowWindow = TRUE; // 此成员设为TRUE的话则显示新建进程的主窗口,
// 为FALSE的话则不显示
BOOL bRet = ::CreateProcess (
NULL, // 不在此指定可执行文件的文件名
szCommandLine, // 命令行参数
NULL, // 默认进程安全性
NULL, // 默认线程安全性
FALSE, // 指定当前进程内的句柄不可以被子进程继承
CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口
NULL, // 使用本进程的环境变量
NULL, // 使用本进程的驱动器和目录
&si,
&pi);
pathuang68 2011-04-13
  • 打赏
  • 举报
回复
比如要打开c:\111.doc,C#中的调用方法是:
ShellExecute(handle, 'open','winword.exe', '111.doc', 'c:\', SW_SHOWNORMAL);

ShellExecute(handle, 'open','winword.exe', 'c:\111.doc', nil, SW_SHOWNORMAL);

楼主自己试试C中的调用方法吧。
「已注销」 2011-04-13
  • 打赏
  • 举报
回复
ShellExecute(NULL,NULL,_T("cmd.exe"), _T("/C msconfig"),NULL,SW_SHOWNORMAL);
「已注销」 2011-04-13
  • 打赏
  • 举报
回复
cmd /C msconfig

33,319

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧