博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 图像处理: 获取当前活动窗口句柄,获取窗口大小及位置
阅读量:6673 次
发布时间:2019-06-25

本文共 1145 字,大约阅读时间需要 3 分钟。

需调用API函数

需在开头引入命名空间 using System.Runtime.InteropServices;

获取当前窗口句柄:GetForegroundWindow()

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]

public static extern IntPtr GetForegroundWindow();

返回值类型是IntPtr,即为当前获得焦点窗口的句柄

使用方法 : IntPtr myPtr=GetForegroundWindow();

获取到该窗口句柄后,可以对该窗口进行操作.比如,关闭该窗口或在该窗口隐藏后,使其显示

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]

public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

其中ShowWindow(IntPtr hwnd, int nCmdShow);

nCmdShow的含义

0 关闭窗口

1 正常大小显示窗口

2 最小化窗口

3 最大化窗口

使用实例: ShowWindow(myPtr, 0);

获取窗口大小及位置:

需要调用方法GetWindowRect(IntPtr hWnd, ref RECT lpRect)

[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)]

static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);

[StructLayout(LayoutKind.Sequential)]

public struct RECT {

public int Left; //最左坐标

public int Top; //最上坐标

public int Right; //最右坐标

public int Bottom; //最下坐标 }

示例:

InPtr awin = GetForegroundWindow(); //获取当前窗口句柄

RECT rect = new RECT();

GetWindowRect(awin, ref rect);

int width = rc.Right - rc.Left; //窗口的宽度

int height = rc.Bottom - rc.Top; //窗口的高度

int x = rc.Left;

int y = rc.Top;

转载地址:http://sdgxo.baihongyu.com/

你可能感兴趣的文章
字符串指针
查看>>
ubuntu设置开机启动项
查看>>
进制与进制转换DAY2
查看>>
orcale 之 SQL 数据查询
查看>>
Unity引擎的Player Settings介绍
查看>>
Windows 更新的下载文件 保存位置
查看>>
[20180928]ora-01426(补充).txt
查看>>
[html] Doctype
查看>>
阅读笔记九
查看>>
求解形式幂级数的一阶微分方程
查看>>
life and penis
查看>>
asp.net 源码坊今日更新
查看>>
跨域,禁止调用
查看>>
hive基本操作与应用
查看>>
java 笔记(2) 接口作为引用数据类型
查看>>
python爬虫 selenium+phantomjs动态解析网页,加载页面成功,返回空数据
查看>>
smtp;550 DY-001 Mail rejected by---游击队?正规军
查看>>
Nginx_handler模块发开(hello模块结构解析)
查看>>
埃式筛法——求n以内素数
查看>>
HDOJ-1051 Wooden sticks(贪心)
查看>>