首页 > 编程语言 >C# 根据坐标获取句柄

C# 根据坐标获取句柄

时间:2024-02-25 21:45:49浏览次数:32  
标签:IntPtr Point C# 句柄 className int 坐标 StringBuilder

C# 根据坐标获取句柄

//获取窗口标题
[DllImport("user32", SetLastError = true)]
public static extern int GetWindowText(
    IntPtr hWnd,//窗口句柄
    StringBuilder lpString,//标题
    int nMaxCount //最大值
    );

//获取类的名字
[DllImport("user32.dll")]
private static extern int GetClassName(
    IntPtr hWnd,//句柄
    StringBuilder lpString, //类名
    int nMaxCount //最大值
    );

//根据坐标获取窗口句柄
[DllImport("user32")]
private static extern IntPtr WindowFromPoint(
Point Point  //坐标
);

private void timer1_Tick(object sender, EventArgs e)
{
    int x = Cursor.Position.X;
    int y = Cursor.Position.Y;
    Point p = new Point(x, y);
    IntPtr formHandle = WindowFromPoint(p);//得到窗口句柄
    StringBuilder title = new StringBuilder(256);
    GetWindowText(formHandle, title, title.Capacity);//得到窗口的标题
    StringBuilder className = new StringBuilder(256);
    GetClassName(formHandle, className, className.Capacity);//得到窗口的句柄
    this.textBox1.Text = title.ToString();
    this.textBox2.Text = formHandle.ToString();
    this.textBox3.Text = className.ToString();
}
···

标签:IntPtr,Point,C#,句柄,className,int,坐标,StringBuilder
From: https://www.cnblogs.com/mayishangtaijie/p/18033119

相关文章

  • C# 理解Thread.Sleep()方法
    C#理解Thread.Sleep()方法转载:https://www.cnblogs.com/nzbbody/archive/2012/03/06/2381359.html我们可能经常会用到Thread.Sleep函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:1、假设现在是2008-4-712:00:00.000,如果我调用一下......
  • docker使用btrfs存储驱动
    ubuntu22环境1.ddif=/dev/zeroof=btrfs.imgbs=1mcount=20002.losetup/dev/loop16btrfs.img3.aptinstallbtrfs-progs4.mkfs.btrfs-f/dev/loop165.mount-tbtrfs/dev/loop16/var/lib/docker6.root@nmx-virtual-machine:/home/nmx#df-TFilesystemType1K......
  • docker-compose更新镜像
    实现方式通过环境变量的方式实现,docker-compose.yaml文件中image段指定的镜像通过变量方式引入,以下是示例:docker-compose.yaml文件内容如下:version:'3'services:svc-new-pro:image:${SVC_NEW_PRO}environment:TZ:Asia/Shanghaiports:-"80......
  • Docker安装mariadb数据库与web管理工具phpmyadmin
    安装mariadb数据库获取指定版本的mariadb数据库docker镜像使用dockersearchmariadb搜索相关镜像;MacBook-Pro:~chenxiaolong$dockersearchmariadbNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDmar......
  • Leetcode 560 和为k的子数组
    Problem:560.和为K的子数组难点怎么通过前缀和找到和为k的子数组如官方题解所言,[j···i]的子数组=k可转化为pre[i]-pre[j-1]==k要找到前缀和找到和为k的子数组个数就是“找到当前前缀和pre[i]-之前求得的前缀和=k”的总情况。我们通过哈希表记录每个前缀和(的值)出......
  • Part1: Overview of Diffusion Process
    本文将会概括性地介绍\(\textit{DiffusionProcess}\)算法与实践,主要参考论文《DenoisingDiffusionProbabilisticModels》。它的一些改进与优化,将“扩散方法”带入主流视野。而具体的数学推导部分,请参考其它系列文章。整个系列有相对完整的公式推导,若正文中有涉及到的省略部分......
  • Docker-常见报错和解决办法
    1、问题1: error:RPCfailed;result=18,HTTPcode=200MiB|181.00KiB/s##gitclonehttps://github.com/apache/doris.gitCloninginto'doris'...remote:Enumeratingobjects:505750,done.remote:Countingobjects:100%(30319/30319),done.remote:C......
  • 【国产化】禁止使用不安全的密码算法:DES、RC2,RSA(1024位及以下),MD5,SHA1
    一、引言随着互联网的普及和技术的发展,网络安全问题日益严重。密码算法作为网络安全的基石,其安全性直接关系到用户数据的安全。一些不安全的密码算法不断被曝光,给用户带来了极大的安全隐患。二、不安全的密码算法1.DESDES(DataEncryptionStandard)是一种对称加密算法,自1977年......
  • 本地启动RocketMQ未映射主机名产生的超时问题
    问题描述参考RocketMQ官方文档在本地启动一个验证环境的时候遇到超时报错问题。本地环境OS:CentOSLinuxrelease8.5.2111首先,进入到RocketMQ安装目录,如:~/opt/rocketmq-all-5.2.0-bin-release。执行如下命令启动NameServer:$shbin/mqnamesrv该命令执行很慢,但是最终还是显......
  • c#控件名称简写
    c#控件名称简写控件名称缩写介绍公共控件Buttonbtn按钮CheckBoxchk复选框CheckedListBoxckl显示一个项列表,其中每一项左侧都有一个复选框ComboBoxcmb下拉列表框DateTimePickerdtp时间控件Labellbl文本列表LinkLabelllb支持超链......