zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    几个前端时间插件总结
    微信支付——退款篇
    getTime()方法在苹果系统的bug
    【转载】[JS]让表单提交返回后保持在原来提交的位置上
    【转载】 IE/Firefox每次刷新时自动检查网页更新,无需手动清空缓存的设置方法
    webstorm相关设置
    检测无标题的
    数组去重的方法
    Git 版本比较
    Git 回到过去
  • 原文地址:https://www.cnblogs.com/lujin49/p/3634485.html
Copyright © 2011-2022 走看看