Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java获取窗口_获取窗口句柄[通俗易懂]

java获取窗口_获取窗口句柄[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-16 00:29:12
发布于 2022-09-16 00:29:12
5.2K0
举报

大家好,又见面了,我是你们的朋友全栈君。

1、使用FindWindow函数获取窗口句柄

示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。

#include

#include

#include

#include

int main(int argc, char* argv[])

{

//根据窗口名获取QQ游戏登录窗口句柄

HWND hq=FindWindow(NULL,”QQ2012″);

//得到QQ窗口大小

RECT rect;

GetWindowRect(hq,&rect);

int w=rect.right-rect.left,h=rect.bottom-rect.top;

cout<

//移动QQ窗口位置

MoveWindow(hq,100,100,w,h,false);

//得到桌面窗口

HWND hd=GetDesktopWindow();

GetWindowRect(hd,&rect);

w=rect.right-rect.left;

h=rect.bottom-rect.top;

cout<

return 0;

}

2、使用EnumWindows和EnumChildWindows函数以及相对的回调函数EnumWindowsProc和EnumChildWindowsProc获取所有顶层窗口以及它们的子窗口(有些窗口做了特殊处理,比如QQ是不能通过这个方法获得的)

示例:

#include “stdafx.h”

#include

#include

#include

#include

#include

//EnumChildWindows回调函数,hwnd为指定的父窗口

BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)

{

char WindowTitle[100]={0};

::GetWindowText(hWnd,WindowTitle,100);

printf(“%s\n”,WindowTitle);

return true;

}

//EnumWindows回调函数,hwnd为发现的顶层窗口

BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)

{

if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) ) //判断是否顶层窗口并且可见

{

char WindowTitle[100]={0};

::GetWindowText(hWnd,WindowTitle,100);

printf(“%s\n”,WindowTitle);

EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //获取父窗口的所有子窗口

}

return true;

}

int main(int argc, _TCHAR* argv[])

{

//获取屏幕上所有的顶层窗口,每发现一个窗口就调用回调函数一次

EnumWindows(EnumWindowsProc ,NULL );

return 0;

}

3、使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口

示例:

#include “stdafx.h”

#include

#include

#include

#include

#include

int main(int argc, _TCHAR* argv[])

{

//得到桌面窗口

HWND hd=GetDesktopWindow();

//得到屏幕上第一个子窗口

hd=GetWindow(hd,GW_CHILD);

char s[200]={0};

//循环得到所有的子窗口

while(hd!=NULL)

{

memset(s,0,200);

GetWindowText(hd,s,200);

/*if (strstr(s,”QQ2012″))

{

cout<

SetWindowText(hd,”My Windows”);

}*/

cout<

hd=GetNextWindow(hd,GW_HWNDNEXT);

}

return 0;

}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162516.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C# 窗体常用API函数 应用程序窗体查找
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名空间 (1)获得当前前台窗体句柄 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]public static extern IntPtr GetForegroundWindow(); 返回值类型是IntPtr,即为当前
逸鹏
2018/04/10
4.1K0
C/C++ 遍历窗口标题类名
遍历每个进程,一次查找进程下的窗口,找到窗口标题为 “” ,窗口类名为 “RunDll” 的窗口。如果找到返回 true ,没找到返回 false。
王瑞MVP
2022/12/28
1.3K0
通过进程句柄获取窗口句柄_如何查看进程id
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说通过进程句柄获取窗口句柄_如何查看进程id,希望能够帮助大家进步!!!
Java架构师必看
2022/07/19
5.3K0
C/C++ 实现模拟键盘鼠标
今天写了点代码,功能是筛选桌面中符合某些条件的窗口,模拟鼠标键盘实现全选 → 复制 → 检测剪切板 → 判断是否存在某些敏感字符串。
王瑞MVP
2022/12/28
1.6K0
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态
在 Windows 应用开发中,如果需要操作其他的窗口,那么可以使用 EnumWindows 这个 API 来枚举这些窗口。
walterlv
2023/10/22
2K0
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态
FindWindow使用方法_find do
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170225.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/21
7060
任务管理器编码详解
模仿windows任务管理器制作一个任务管理器软件。设计语言不限。 二知识要求    Windows编程,MFC编程,API调用 三.开发环境 使用Microsoft Visual Studio 2013的开发环境,模拟Windows的任务管理器。首先分析进程管理器软件的相关功能;其次,综合运用以前所学的相关知识,广泛查阅资料。 四.主要功能及实现思路 4.1设计要求实现的主要功能进程管理功能,具体包括以下内容: (1) 使用系统API。 (2) 制作出相应的图形用户界面。 (3) 至少包括三个功能: 获取
用户1631856
2018/04/12
2.1K0
VC Windows API获得桌面所有窗口句柄的方法
VC Windows API应用之GetDesktopWindow ——获得桌面所有窗口句柄的方法
全栈程序员站长
2022/07/15
1.8K0
借助API实现黑盒自动化测试工具的编写
  在日常编码过程中,我们常常会进行自动化测试。这里的自动化测试不是指单元测试,而是模拟人工输入来进行快速的、高并发的测试。可以使用的自动化工具有LOADRUNNER,以及目前在VS2010中的功能很强大的测试工作平台(录制操作步骤,自动生成代码)。但是,这些工具的熟练掌握也有一定的时间成本,并且,最主要的,对于一个程序员来说,那不够灵活。所以,比较高效的一个做法是,调用WINDOWS API,自己动手写编码来实现。
顾翔
2021/07/22
6480
常用的user32API说明
整理了一下常用的user32API说明  还有软件Microsoft Spy++供大家下载  Spyv10.00.30319.rar using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Drawing; namespace WindowsFormsApplication1 { p
lpxxn
2018/01/31
4.4K0
Python—-pywin32如何获取窗口句柄
halo,各位读者,本栏目开设一个围绕着“如何用Python来制作PC软件”展开。 当我们想用处理Windows的软件窗口时,常常会碰到想将窗口置顶、隐藏和显示等等,还有读者想将电脑托盘、任务栏等都隐藏的情况。本篇文章就是带领读者学习窗口句柄,并且如何应用Python带的win32 模块来读取界面中各个窗口的句柄。 希望通过此篇文章,可以让读者朋友跟着步骤操作,最终可以做出自己的小软件。
全栈程序员站长
2022/09/16
3.5K0
c++获取窗口句柄的方法「建议收藏」
FindWindow(); 函数原型:HWND FindWindow(LPCSTR lpClassName,LPCSTR lpWindowName); FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。这个函数不搜索子窗口。 lpClassName参数指向类名,lpWindowName指向窗口名,如果有指定的类名和窗口的名字则表示成功返回一个窗口的句柄。否则返回NULL。
全栈程序员站长
2022/09/16
1.7K0
c++ 遍历桌面所有窗口/遍历一个窗口下的所有窗口
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
用户7886150
2021/02/19
2.1K0
c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。
全栈程序员站长
2022/09/16
2.6K0
c++ findwindow函数_matlab中怎么查找函数的用法
FindWindow 用来根据类名和窗口名来得到窗口句柄的。但是这个函数不能查找子窗口,也不区分大小写。
全栈程序员站长
2022/09/21
1.1K0
Windows系统API笔记
关于窗口操作的一些API介绍。 1. 设置窗口的Z序层级 BOOL SetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags ); 2. 根据窗口标题查找窗口 HWND FindWindow( LPCSTR lpClassName, LPCSTR lpWindowName ); 3. 获取窗口标
Qt君
2023/03/17
5710
Windows系统API笔记
win32程序之子窗口编程
  在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环.
IBinary
2018/09/28
1.9K0
win32程序之子窗口编程
vb.net_一个半成品
Imports System.Text Imports System.Runtime.InteropServices Public Class Form1 '引用win32api进行枚举窗体句柄操作 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr Pri
landv
2018/05/24
8430
python win32api中文手册_python 模拟鼠标和键盘输入
# FindWindow(lpClassName=None, lpWindowName=None) 窗口类名 窗口标题名
全栈程序员站长
2022/11/07
6.6K0
获取Windows系统所有窗口句柄
  上代码: #include <QDebug> #include <windows.h> #pragma comment(lib,"user32.lib") /* 回调函数,用于捕获进程 */ BOOL MyEnumProc(HWND hwnd, LPARAM param) { LPWSTR lpString = (LPWSTR)malloc(sizeof(WCHAR) * MAX_PATH); if (IsWindow(hwnd) && IsWindowEnable
Qt君
2023/03/17
1.7K0
获取Windows系统所有窗口句柄
推荐阅读
相关推荐
C# 窗体常用API函数 应用程序窗体查找
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档