请教:postmessage(wm_close)为什么关不掉窗口?有什么别的方法?强制的,如kill这样的?怎么用呢?求代码。
A是我写的程序,用createprocess来调用别人的程序B(一个压力测试程序)并得到相应的结构si,pi。
B的窗口标题是固定的,所以我可以得到B的窗口句柄。(用findwind)
在A里有一定时器,每隔一分钟向B发送WM_CLOSE消息,可是怎么也关不掉。
但是能在日志文件里找到每分钟的关闭记录,说明程序已向B的窗口每隔一分钟就发送了关闭的消息。
另外,B程序运行时CPU占用率一直在100%左右。
(难道postmessage此时起不到作用了?)
以下是计时器void CMTESTDlg::OnTimer(UINT nIDEvent)函数里的一段代码:
CWnd * hMtaWindow = NULL;
hMtaWindow = FindWindow(NULL,_T("WinA OEM V3.2"));
if(hMtaWindow!=NULL)
{
hMtaWindow->PostMessage(WM_CLOSE, 0, 0);
//加入日志监控
if((stream=fopen("timelog.txt", "a")) == NULL)
{
AfxMessageBox("The file 'timelog.txt' was not opened");
return;
}
else
fprintf(stream,
"force to close the window! message:%d, testtime:%d\n",
nIDEvent,
TESTTIME);
if(fclose(stream))
{
AfxMessageBox("The file 'timelog.txt' was not closed");
return;
}
}
else
{
KillTimer(2);
}