如何知道当前是否有窗口的名称是以abc开头的?用EnumWindows吗?怎样用?

iiii 2001-08-26 06:52:55
只知道要找的窗口的名称是abc开头,即abcd或abcws都合乎条件
如何知道是否有这样的一个窗口,如何的到它的指针。
用EnumWindows吗?怎样用?请给出代码。我看不明msdn里的“callback“的意思

另一问,如何知道一个程序非法操作?(知道它的主窗口的句柄)
并得到写着非法操作的那个窗口的句柄,来发消息关闭它

各位大虾请帮忙!!分不够可以加,现在我只可以给这么多!
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iiii 2001-08-27
  • 打赏
  • 举报
回复
多谢azuo_lee(),
 BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
BOOL retval = TRUE;
int nTextLength = GetWindowTextLength(hwnd);
// if(nTextLength < 256)
{
char * szText = new char[nTextLength+1];
GetWindowText(hwnd, szText, nTextLength);
szText[3] = 0;//这里我想应该是 szText[3]='\0'吧。
if(!lstrcmp(szText, "abc"))
{
*((HWND *)lParam) = hwnd;
retval = FALSE;
}
delete[] szText;//还有,不知为什么debug到这里就有出问题啦。
//我用固定大小的数住解决
}
return retval;
}
分我迟些一定加上。


第二个问题没人会?
iiii 2001-08-26
  • 打赏
  • 举报
回复
up
azuo_lee 2001-08-26
  • 打赏
  • 举报
回复
HWND hwnd = NULL;
EnumWindows(EnumWindowsProc, (LPARAM)&hwnd);
if(hwnd)
CWnd * pWnd = CWnd::FromHandle(hwnd);

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
BOOL retval = TRUE;
int nTextLength = GetWindowTextLength(hwnd);
// if(nTextLength < 256)
{
char * szText = new char[nTextLength+1];
GetWindowText(hwnd, szText, nTextLength);
szText[3] = 0;
if(!lstrcmp(szText, "abc"))
{
*((HWND *)lParam) = hwnd;
retval = FALSE;
}
delete[] szText;
}
return retval;
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧