打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# 图像处理: 获取当前活动窗口句柄,获取窗口大小及位置

需调用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;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#+API实现指定窗体激活
在Winform中嵌入exe程序
从C#程序中调用非受管DLLs
C#启动一个外部程序(2)
C# GetWindowThreadProcessId用法 .
获取窗体句柄并操纵它
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服