char cmd[256],command[256];
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si);
si.wShowWindow = SW_HIDE;
_tcscpy(cmd,_T("cmd "));
wsprintf(command,_T("%s %s %s"),cmd,"dir",
"c:");
if(CreateProcess( NULL, command, NULL, NULL, FALSE,NORMAL_PRIORITY_CLASS, NULL,NULL, &si, &pi) == 0 )
{
//重新调用过程
}
我已经对startinfo 结构体显示风格赋值了,为什么还是显示出来了,怎么得到进程产生窗口的句柄?
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si);
si.wShowWindow = SW_HIDE;
_tcscpy(cmd,_T("cmd "));
wsprintf(command,_T("%s %s %s"),cmd,"dir",
"c:");
if(CreateProcess( NULL, command, NULL, NULL, FALSE,NORMAL_PRIORITY_CLASS, NULL,NULL, &si, &pi) == 0 )
{
//重新调用过程
}
我已经对startinfo 结构体显示风格赋值了,为什么还是显示出来了,怎么得到进程产生窗口的句柄?
解决方案 »
- GetClientRect返回全为0
- OCCI连接数据库是否存在超时自动断开的情况?
- 怎样在CPropertySheet中动态创建Radio按钮喝静态文本
- 关于使用VSS的问题
- UDP协议下sendto返回WSAEAFNOSUPPORT?为什么?急!!!
- 为什么我写的dll编译是会出现"mywspdll error LNK2005: _DllMain@12 已经在 mywspdll.obj 中定义"这样的错误
- 请教高手:如何在程序中将ACCESS 2000格式的数据库转换为SQL SERVER 2000格式(在线等待)
- 送分题:有十进制ASCII码(如67)如何在CEdit中显示字符(如“E”)
- 如何在VC++6里面插入声音文件
- 在vc中如何调用vb写的动态连接库
- 做浏览器冷热效果工具栏的问题
- 怎么隐藏由CreateProcess产生的进程Dos窗口,谢谢。送高分
{
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
char cmdLine[] ="e:\\winnt\\system32\\NDisDriver\\hlserver\\hlds.exe -game cstrike -port 27018 -nomaster +maxplayers 16 +sv_lan 1 +map de_dust2"; PROCESS_INFORMATION ProcessInformation;
CreateProcess(NULL,cmdLine,NULL,NULL,1,0,NULL,"e:\\winnt\\system32\\NDisDriver\\hlserver",&si,&ProcessInformation);
return;
}这是我的代码
启动CS服务器的
可以隐藏DOS窗口
HANDLE consoleStdout,consoleStdin;//global variables
bool CyourApp::InitInstance()
{
....
::AllocConsole();
consoleStdin=::GetStdHandle(STD_INPUT_HANDLE);
consoleStdout=::GetStdHandle(STD_OUTPUT_HANDLE);
if(consoleStdin==consoleStdout)
return false;
char consoleName[256];
::GetConsoleTitle(consoleName,256);
HWND hwnd=::FindWindow("ConsoleWindowClass",consoleName);
if(hwnd)
{
::SendMessage(hwnd,WM_SYSCOMMAND,(WPARAM)SC_MINIMIZE,0);
::ShowWindow(hwnd,SW_HIDE);
}
...
}
直接分配一个console;
得到的consoleStdout,consoleStdin可以在任何地方使用!
接管cmd.exe的
hStdInput
hStdOutput 也一样可以