请教:怎样使console程序的黑窗口不显示。因为要抓图,每次抓到的都有console窗口。 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //执行ipconfig的代码#define EXECDOSCMD "c:\\winnt\\system32\\ipconfig /all" //可以换成你的命令BOOL ExecDosCmd(){ SECURITY_ATTRIBUTES sa; HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; if (!CreatePipe(&hRead,&hWrite,&sa,0)) { return FALSE; } 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; //关键步骤,CreateProcess函数参数意义请查阅MSDN if (!CreateProcess(NULL, EXECDOSCMD ,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) { return FALSE; } CloseHandle(hWrite); char buffer[4096] = {0}; DWORD bytesRead; while (true) { if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL) break; //buffer中就是执行的结果,可以保存到文本,也可以直接输出 printf(buffer); Sleep(200); } return TRUE;} 比如,每次运行程序时,我想抓到当前桌面的图像。由于程序运行产生了一个console黑窗口,导致抓到的图像里都含有该console窗口。所以,我想问的是,能不能让程序运行时最小化console窗口或者在后台运行不显示。我的程序vc下的console程序,附带支持mfc,atl 不用CONSOLE, 用其他的方式窗口一开始就最小化 ”记录集为只读“怎么解决?请高手帮忙看看。感激不尽…… 程序启动后最大化窗口,在onsize中获取的窗口尺寸不正确? 关于Combo Box的SetItemDataPtr方法的一个问题? 类型转换的小问题 CreateDIBitmap,DIB,DDB到底是怎么回师事? 请问:如何读得DNS服务器中SRV记录? 如何知道应用程序在我的注册表中写了什么东西? vc是否适合进行网络编程?烦请指教 北京刚毕业,能拿多少? c++ 敏感词汇管理怎么写 多文档下的键盘输入问题,谢谢各位大侠了! 请问, 怎么样可以把我VC中的MFC升级到6.0啊?
#define EXECDOSCMD "c:\\winnt\\system32\\ipconfig /all" //可以换成你的命令
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
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;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
printf(buffer);
Sleep(200);
}
return TRUE;
}
窗口一开始就最小化