遇到一個工程問題,mongo客戶端robo 3T出現一個陰影的問題。原因是程序中的這種窗口,被顯示出來了。
重現代碼:
#define WINDOW_TEXT_LENGTH 256
HWND hd=GetDesktopWindow(); //得到桌面窗口
hd=GetWindow(hd,GW_CHILD); //得到屏幕上第一個子窗口
char s[200]={0}, bufName[WINDOW_TEXT_LENGTH] = {0}, bufClass[WINDOW_TEXT_LENGTH] = {0};
int num=1;
while(hd!=NULL) //循環得到所有的子窗口
{
memset(bufName,0,WINDOW_TEXT_LENGTH);
memset(bufClass,0,WINDOW_TEXT_LENGTH);
::GetWindowText(hd, bufName, WINDOW_TEXT_LENGTH);
::GetClassName(hd, bufClass, WINDOW_TEXT_LENGTH);
if (stricmp(bufName, "robo3t") == 0){
if (stricmp(bufClass, "Qt5QWindowPopupDropShadowSaveBits") == 0)
{
::ShowWindow(hd, SW_SHOW); // ==> 顯示一個陰影;
break;
}
}
#if 0
DWORD dwPid = 0;
GetWindowThreadProcessId(hd, &dwPid);
if (dwPid == nCmpProcess){
if(strstr(s, "遠程桌面連接") != NULL ){
break;
}
}
#endif
// cout<<num++<<": "<<s<<endl;
hd=GetNextWindow(hd,GW_HWNDNEXT);
}