当前位置: 首页 > news >正文

C++ Builder XE EnumWindowsProc遍历所有窗口的名称

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
    // 这里可以添加你的处理逻辑
    // 例如,将句柄添加到列表中或者其他操作
    // 这里我们仅仅输出到调试窗口
    OutputDebugString(L"枚举窗口句柄: ");
    char windowHandle[10];
    sprintf(windowHandle, "%x", hwnd);

    OutputDebugStringA(windowHandle);
    OutputDebugStringA("\n");

    WideChar windowText[256];
    // 获取窗口标题
    GetWindowText(hwnd, windowText, sizeof(windowText));
    if(String(windowText).Length()>0)
       Form1->Memo1->Lines->Append(windowText);
    // 继续枚举其他窗口
    return TRUE;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   EnumWindows(EnumWindowsProc, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    HWND hWnd = FindWindow(L"123456", NULL);               //GetForegroundWindow();
    if (hWnd != NULL)
    {
        WideChar windowText[256];
        // 获取窗口标题
        GetWindowText(hWnd, windowText, sizeof(windowText));
        // 显示窗口标题
        ShowMessage(windowText);

        //const int messageID =0x0400+0; // 替换为正确的消息ID
        //SendMessage(hWnd, WM_COMMAND, messageID, 0);
    }
    else
    {
        ShowMessage("无活动窗口");
    }
}

http://www.lryc.cn/news/345328.html

相关文章:

  • Qt QInputDialog详解
  • 最新盘点!2024年20大好用的项目管理软件(后续持续更新)
  • Linux:配置客户端默认autofs服务
  • Kotlin版本的Gradle全局配置init.gradle.kts及参考文档
  • react18【实战】tab切换,纯前端列表排序(含 lodash 和 classnames 的安装和使用)
  • C++学习第二十七课:C++ 输入输出流详解:从基础到高级应用
  • 【Unity AR开发系列】介绍如何使用这个支持热更的AR开发插件,快速地开发AR应用
  • Nginx - 配置文件结构(一)
  • 暗区突围进不去/游戏无法启动/掉帧卡顿/报错的解决方法
  • 基于FPGA的视频矩阵 视频拼接 无缝切换解决方案
  • LeetCode 513.找树左下角的值
  • redis分片java实践、redis哨兵机制实现、redis集群搭建
  • 2024年四千价位段最具统治力的投影仪,坚果N1S 4K: 4K+三色激光=下一代4K
  • MySQL8.3升级踩坑记录
  • 你写的每条SQL都是全表扫描吗
  • 每日两题 / 24. 两两交换链表中的节点 25. K 个一组翻转链表(LeetCode热题100)
  • 【Linux】模拟实现bash(简易版)
  • C++ | Leetcode C++题解之第67题二进制求和
  • 如何确保UDP文件传输工具有最低稳定的传输速度?
  • 力扣爆刷第133天之动态规划收尾(距离编辑与回文子串)
  • List集合中对asList的使用
  • 软件测试所有测试方法
  • linux 下 /usr/local的作用
  • 【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】
  • MySQL用命令行导出数据库
  • uniapp video 层级覆盖
  • SparkSQL概述
  • docker 和 docker-compose
  • 微信小程序支付(完整版)-ThinkPHP/Uniapp
  • 同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本(两个详细方法)