通过ShellExecute等方式调用Dos程序,但是想隐藏其DOS窗口,不知道该怎么办?
解决方案 »
- ScaleWindowExt怎么用
- ASCII Character Codes Chart 2
- 请wangjia184 进!
- vc的atl中如何获得网页文本框里的内容--各位老大,老大帮帮小弟的饭碗呀
- 请教两个问题 时间 和读写EXCEL
- access数据库如何用sql语句来修改表名称?高手指教
- 为什么不发出EN_CHANGE 消息???
- 请问Unhandled exception in vmos.exe;0xC000005:Access Violation是什么意思
- 请问winsock编程其中结构sockaddr与sockaddr_in的区别
- 关于Custom Control的问题?
- 关于端口资源没有释放的问题。望高手赐教!
- CListCtrl的问题,在线等
{ SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
MessageBox("Error On CreatePipe()");
return;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL,"c:\\winnt\\system32\\cmd.exe /c dir"
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
DWORD dw = GetLastError();
MessageBox("Error on CreateProcess()");
return;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
m_strResult+= buffer;
UpdateData(false);
Sleep(200);
}
}
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES