执行*.bat文件(cmd命令)

szto2003 2004-11-25 09:40:56
如何执行*.bat文件,但是我要不出现cmd窗口,并且等这个bat文件执行完成以后再再执行下面的代码

具体如下:

ShellExecute(Handle,"open","start.bat","",NULL,SW_HIDE);

--等待,等这个start.bat文件执行完成后再执行下面的代码

MessageBox("ok");


望高手指点
...全文
1694 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
szto2003 2004-11-25
  • 打赏
  • 举报
回复
谢谢各位了,问题解决了
lihongxing2002 2004-11-25
  • 打赏
  • 举报
回复
肯定是bat执行完后,执行下面得语句啊。不过不是bat里面得还要执行别得exe得话,就不是了
tabris17 2004-11-25
  • 打赏
  • 举报
回复
打错了,应该是WaiteForSingleObject

这么用
hProcess=CreateProcess(......);
WaitForSingleObject(hProcess,INFINITE);
MessageBox("ok");
ccrun.com 2004-11-25
  • 打赏
  • 举报
回复
用ShellExecute是不行地。
用这个:

SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "C:\\123\\123.bat";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
MessageBox(Handle, "ok", "ok", MB_OK);
tabris17 2004-11-25
  • 打赏
  • 举报
回复
bat文件应该也可以使用CreateProcess运行的,设置lpStartupInfo->wShowWindow=SW_HIDE;隐藏窗口

得到进程句柄,然后用WaiteSingleObject等待进程结束
然后再执行MessageBox("ok");
shally5 2004-11-25
  • 打赏
  • 举报
回复
帮你作一函数:作用 WaitCall("c:\\start.bat");
void __fastcall TForm1::WaitCall(AnsiString FName)
{
//TODO: Add your source code here
if(FileExists(FName))
{
STARTUPINFO StartupInfo;
ZeroMemory( &StartupInfo, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.wShowWindow=SW_MINIMIZE;//SW_SHOWNORMAL;
StartupInfo.dwFlags=1;
PROCESS_INFORMATION ProcessInfo;
if(CreateProcess(FName.c_str,NULL, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo))
{
DWORD dwExitStatus = STILL_ACTIVE;
do
{
if( !GetExitCodeProcess(ProcessInfo.hProcess, &dwExitStatus)) break;
Application->ProcessMessages();
} while (dwExitStatus == STILL_ACTIVE);
ShowMessage("结束!");
}
}
else
{
SystemLog("启动进程出错");
}
}

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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