首页 > Windows开发 > 详细

API抓屏

时间:2015-07-19 14:54:02      阅读:178      评论:0      收藏:0      [点我收藏+]

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

API抓屏

原文:http://www.cnblogs.com/vok-think/p/4658539.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!