使用system怎么不出现dos窗口?

shuibing 2002-01-20 10:12:07
我只想在后台调用dos命令,不想出现黑窗口。谢谢!
...全文
342 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Behard 2002-01-22
  • 打赏
  • 举报
回复
xuexi
shally5 2002-01-22
  • 打赏
  • 举报
回复
这样。。。。
void __fastcall TForm1::WaitCall(AnsiString COMMANDSTR)
{
//TODO: Add your source code here
STARTUPINFO StartupInfo;
ZeroMemory( &StartupInfo, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.wShowWindow=SW_MINIMIZE
StartupInfo.dwFlags=1;
PROCESS_INFORMATION ProcessInfo;
if(CreateProcess(COMMANDSTR.c_str()/*ExeFileName.c_str()*/,NULL, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo))
{
OpenProcess(PROCESS_TERMINATE/*¦SYNCHRONIZE*/,false,(DWORD)ProcessInfo.hProcess);
DWORD dwExitStatus = STILL_ACTIVE;
do
{
if( !GetExitCodeProcess(ProcessInfo.hProcess, &dwExitStatus)) break;
Application->ProcessMessages();
} while (dwExitStatus == STILL_ACTIVE);
}
}
shally5 2002-01-22
  • 打赏
  • 举报
回复
这样。。。。
void __fastcall TForm1::WaitCall(AnsiString COMMANDSTR)
{
//TODO: Add your source code here
STARTUPINFO StartupInfo;
ZeroMemory( &StartupInfo, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.wShowWindow=SW_MINIMIZE
StartupInfo.dwFlags=1;
PROCESS_INFORMATION ProcessInfo;
if(CreateProcess(COMMANDSTR.c_str()/*ExeFileName.c_str()*/,NULL, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo))
{
OpenProcess(PROCESS_TERMINATE/*|SYNCHRONIZE*/,false,(DWORD)ProcessInfo.hProcess);
DWORD dwExitStatus = STILL_ACTIVE;
do
{
if( !GetExitCodeProcess(ProcessInfo.hProcess, &dwExitStatus)) break;
Application->ProcessMessages();
} while (dwExitStatus == STILL_ACTIVE);
}
}
else
{
SystemLog("调用进程出错!!!!");
}
}
Bird1945 2002-01-22
  • 打赏
  • 举报
回复


WinExec("dir",SHOW_HIDE) ;


nibani 2002-01-22
  • 打赏
  • 举报
回复
WinExec("ProgrameName",SHOW_HIDE) ;
Rayking 2002-01-22
  • 打赏
  • 举报
回复
最好不用线程,用CreateProcess创建一个进程,有一个参数是控制新进程窗口是否显示的,去查一下MSDN吧。
shuibing 2002-01-22
  • 打赏
  • 举报
回复
我简单创建了个线程,在线程里用system,还是有个dos窗口出现。能详细讲下嘛。
我来看看CB 2002-01-22
  • 打赏
  • 举报
回复
为DOS程序创建快捷方式,设置为最小化运行

或者类似

WinExec("dir",SHOW_HIDE) ;
781014 2002-01-22
  • 打赏
  • 举报
回复
system ("command");
01101230 2002-01-20
  • 打赏
  • 举报
回复
创建一个线程

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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