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

网站开发 验收标准福州百度快照优化

网站开发 验收标准,福州百度快照优化,服务器的wordpress怎么外网访问,做响应式网站的菜单Qt/C 获取QProcess启动的第三方软件的窗体标题,在使用EnumWindows获取窗体句柄(HWND)时,如果返回提前FALSE,则获取到的HWND状态IsWindow正常,但就是获取不到窗体标题。必须正常返回TRUE才能使用HWND获取到窗体标题,要不…

Qt/C++ 获取QProcess启动的第三方软件的窗体标题,在使用EnumWindows获取窗体句柄(HWND)时,如果返回提前FALSE,则获取到的HWND状态IsWindow正常,但就是获取不到窗体标题。必须正常返回TRUE才能使用HWND获取到窗体标题,要不然获取到的标题内容就是空。

QProcess线程需要在启动后等待几秒的时间再获取打开的窗体句柄,或者一直While(true)获取窗体句柄直到获取HWND不为空为止。

目录

    • 使用EnumWindows获取所有窗体句柄和PID
      • 写法1
      • 写法2
    • 获取窗体标题
      • 使用 GetWindowTextA 获取窗体标题
      • 使用 SendMessage获取窗体标题
      • 使用 DefWindowProcA获取窗体标题
      • 使用 GetClassNameA获取窗体类名称
    • 使用FindWindowEx获取窗体句柄

使用EnumWindows获取所有窗体句柄和PID

写法1

static HWND GHO_HWMD_C=nullptr;
static BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{DWORD processId;GetWindowThreadProcessId(hwnd, &processId);if (processId == (DWORD)lParam){GHO_HWMD_C=hwnd;}///必须返回true 如果返回false 会造成HWND不能获取窗体标题,修改窗体隐藏等属性return TRUE;
}static BOOL CALLBACK EnumThreadChildProc(HWND hwnd, LPARAM lParam)
{DWORD processId;GetWindowThreadProcessId(hwnd, &processId);if (processId == (DWORD)lParam){GHO_HWMD_C=hwnd;}///必须返回true 如果返回false 会造成HWND不能获取窗体标题,修改窗体隐藏等属性return TRUE;
}static BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{DWORD processId;GetWindowThreadProcessId(hwnd, &processId);if (processId == (DWORD)lParam){GHO_HWMD_C=hwnd;}///必须返回true 如果返回false 会造成HWND不能获取窗体标题,修改窗体隐藏等属性return TRUE;EnumChildWindows(hwnd, EnumChildProc, lParam);EnumThreadWindows(processId,EnumThreadChildProc, lParam);
}//在所有线程中查找pid
//process.processId(); QProcess类processId()返回pid
EnumWindows(EnumWindowsProc, (LPARAM)process.processId());

写法2

EnumWindows([](HWND hwndparent, LPARAM lParam)->BOOL{DWORD processId = 0;GetWindowThreadProcessId(hwndparent, &processId);if (processId == (DWORD)lParam){GHO_HWMD_C=hwnd;}EnumChildWindows(hwndparent,[](HWND Chwnd, LPARAM lParam)->BOOL{DWORD CprocessId = 0;GetWindowThreadProcessId(Chwnd, &CprocessId);if (CprocessId == (DWORD)lParam){GHO_HWMD_C=hwnd;}return TRUE; // 返回TRUE以继续枚举下一个窗体},lParam);EnumThreadWindows(processId,[](HWND Thwnd, LPARAM lParam)->BOOL{DWORD TprocessId = 0;GetWindowThreadProcessId(Thwnd, &TprocessId);if (TprocessId == (DWORD)lParam){GHO_HWMD_C=hwnd;}return TRUE; // 返回TRUE以继续枚举下一个窗体},lParam);return TRUE; // 返回TRUE以继续枚举下一个窗体},(LPARAM)process.processId());

获取窗体标题

使用 GetWindowTextA 获取窗体标题

char WindowText[256];
GetWindowTextA(GHO_HWMD_C, WindowText, sizeof(WindowText));
qDebug() << "Window title Text: " << QString::fromUtf8(WindowText);

使用 SendMessage获取窗体标题

WCHAR WindowsTitle[MAX_PATH];
if(SendMessageW(GHO_HWMD_C, WM_GETTEXT, MAX_PATH, (LPARAM)WindowsTitle)>0)qDebug() <<QString::fromWCharArray(WindowsTitle);//const int bufferSize = 256;//char buffer[bufferSize];//SendMessageA(GHO_HWMD_C, WM_GETTEXT, bufferSize, (LPARAM)buffer)

使用 DefWindowProcA获取窗体标题

int len = SendMessageA(GHO_HWMD_C, WM_GETTEXTLENGTH, 0, 0) + 1;
// new一块len大小的内存
char *title = new char(len);
// 初始化内存为0
memset(title, 0, len);
// 发送WM_GETTEXT消息获取控件文本
DefWindowProcA(GHO_HWMD_C, WM_GETTEXT, 1024, (LPARAM)title);

使用 GetClassNameA获取窗体类名称

char className[256];
GetClassNameA(GHO_HWMD_C, className, sizeof(className));
qDebug() << "Window class name: " << QString::fromUtf8(className);

使用FindWindowEx获取窗体句柄

/*! https://linuxcpp.0voice.com/?id=132468*/
/*!
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QProcess process;process.start("path/to/your/executable");if (process.waitForStarted()){// 获取进程IDDWORD pid = process.processId();// 获取进程主窗口句柄HWND hwnd = nullptr;do{hwnd = FindWindowEx(nullptr, hwnd, nullptr, nullptr);DWORD windowPid;GetWindowThreadProcessId(hwnd, &windowPid);if (windowPid == pid){// 获取窗口类名char className[256];GetClassName(hwnd, className, sizeof(className));qDebug() << "Window class name: " << QString::fromUtf8(className);break;}} while (hwnd != nullptr);process.waitForFinished();}return a.exec();
}*/
http://www.khdw.cn/news/33490.html

相关文章:

  • 舌尖上的西安 网站怎么做百度收录怎么做
  • 网页设计与制作实例教程seo排名需要多少钱
  • 青岛做网站优化哪家好百度关键字推广费用
  • 天津大寺网站建设重庆网站搜索引擎seo
  • 柳州网站优化怎样提高百度推广排名
  • 做adsense对网站有什么要求百度推广怎么操作
  • 网站的客服怎么做关键词优化排名软件哪家好
  • 北京做日本旅游的公司网站计算机培训班培训费用
  • 深圳求职招聘网站网站优化种类
  • p2p网站制作 杭州企业管理系统
  • 做快餐料包的网站有哪些seo检测优化
  • 网站开发语言汇总seo关键词有话要多少钱
  • 个人网站建设视频教学搜索引擎广告形式有哪些
  • 自己做优惠券网站网站建设设计
  • 旅行社网站建设seo网站收录工具
  • 贵州网站建设百度客服怎么联系
  • 公司网页制作上海关键词seo
  • 网站项目策划书内容模板百度营销推广官网
  • 网站开发主要使用的技术谷歌官网网址
  • 响应式网站seo站长素材免费下载
  • 做报纸版式的网站如何用html制作网页
  • 做网站的品牌公司网络营销师证书需要多少钱
  • 做网站从哪里找货源搜索引擎优化人员优化
  • 沈阳怎么做网站关键词优化如何
  • 北京网站建设哪家好网络软营销
  • 临朐网站建设建站百度号码
  • 免费素材库短视频素材网站谷歌外链工具
  • 网站换dns网页设计期末作业模板
  • 监理工程师查询系统入口seo网页优化公司
  • 网站开发标书怎么写关键词排名 收录 查询