C# GetWindowRect简介及使用说明_实用技巧

函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect);
参数:
hWnd:窗口句柄。
lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。
返回值:如果函数成功,返回值为非零:如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
C#中使用该函数首先导入命名空间:

复制代码 代码如下:

using System.Runtime.InteropServices;

然后写API引用部分的代码,放入 class 内部

复制代码 代码如下:

[DllImport("user32.dll")]
private static extern int GetWindowRect(IntPtr hwnd,out Rect lpRect);

这个函数有两个个参数,第一个参数是指定窗口句柄;第二个参数接收窗口的左上角和右下角的屏幕坐标,它是Rect结构。Rect结构定义如下:

复制代码 代码如下:

public struct Rect
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}
演示代码:
IntPtr hwnd = FindWindow("", "计算器");
Rect rect = new Rect();
GetWindowRect(hwnd, out lpRect);

时间: 2025-01-18 22:46:13

C# GetWindowRect简介及使用说明_实用技巧的相关文章

C# SetCursorPos简介及使用说明_实用技巧

函数功能:该函数把光标移到屏幕的指定位置.如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内. 函数原型:BOOL SetCursorPOS(int X,int Y): 参数: X:指定光标的新的X坐标,以屏幕坐标表示. Y:指定光标的新的Y坐标,以屏幕坐标表示. 返回值:如果成功,返回非零值:如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数. 备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动

ASP.NET中JSON的序列化和反序列化使用说明_实用技巧

在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{}',中括号'[]',逗号',',冒号':',双引号'""'组成,包含

ASP.NET笔记之Calender的使用说明_实用技巧

1.介绍 (1.在Calender中,所有可选择的符号会显示下划线,这是因为它们在浏览器都会呈现为链接.      如果让用户可以选择某天.月.周,必须设置SelectionMode属性(Day. DayWeek.DayWeekMonth)                                (2   控件事件  当用户选择了某一天或者月,可以用OnSelectionChanged来触发      通过  Calendar1.SelectedDate.ToShortDateString

ASP.NET笔记之页面跳转、调试、form表单、viewstate、cookie的使用说明_实用技巧

1.页面跳转: (1 服务器传输   server.Transer(http://www.jb51.net);在定向到新页面后,还是会显示原来的URL,浏览器返回不会退回到原页面,历史记录也不会记录.   应用于完整的控制传输,例如安装向导. (2 超链接 (3 浏览器重定向 Redirect ,速度快,没有发送到服务器 (4 跨页发送 PostBackUrl="http://www.jb51.net" />           IsCrossPagePostBack用来判断是否

.NET 缓存设计的使用说明_实用技巧

关于缓存的设计1.什么情况下用缓存 缓存是提高应用程序性能的最好方法之一.运用缓存可以优化数据查询,避免不必要的网络数据回传,和避免执行不必要的完全相同的数据处理逻辑.在实现缓存的时候我们要确定什么时候装入缓存数据.用异步装入缓存或用批处理方式来避免出现客户端数据延迟.一般来说在一定时间内请求了相同的业务逻辑而没有变更的话,可以采用缓存来设计.数据请求频繁的的请求不适合采用缓存,如论坛的回复,但是论坛的主题是可以采用缓存设计的. 2.缓存设计的步骤确定缓存数据结构:即设计中哪些数据用到了缓存,设

asp.net *.ashx类型的文件使用说明_实用技巧

解决方案:使用ashx文件. 1. 使用ASHX handlers 首先,我们要回顾要使用ASHX文件的目标,我们要做的是在一个地址中用ASHX文件并动态的返回内容. 我们将用到querystring,最后的地址格式为(例子): http://dotnetperls.com/?file=name 开始:通过这几个步骤你可以添加一个新的ashx文件:打开你的ASP.NET web site:右击项目选择 "Add New Item...":将显示一个"Add New Item&

ASP.NET Session对象保持会话使用说明_实用技巧

ASP.NET提供了Session对象,从而允许程序员识别.存储和处理同一个浏览器对象对服务器上某个特定网络应用程序的若干次请求的上下文信息.Session对应浏览器与服务器的同一次对话,在浏览器第一请求网络应用程序的某个页面时,服务器会触发Session_onStart事件:在对话超时或者被关闭的时候会触发Session_onEnd事件.程序员可以在代码中响应这两个事件来处理与同一次对话相关的任务,如开辟和释放该次对话要使用的资源等. 在ASP.NET的程序中要使用Session对象时,必须确

C# SetWindowPos窗口置顶使用说明_实用技巧

复制代码 代码如下: [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags); /// <summary> /// 得到当前活动的窗口 /// </summary> /// <

Win 2000下ASP.NET开发环境的配置_实用技巧

Win 2000下ASP.NET的配置 Win 2000(包括Professional,Server和Advanced Server)在默认情况下是不支持ASP.NET的.必须对它进行一个环境的配置. 客户端 SQL Server .NET 数据提供程序 Microsoft 数据访问组件 (MDAC) 2.6 或更高版本 对系统管理信息的访问 Windows Management Instrumentation (WMI)(在 Windows 2000操作系统一起安装)COM+ 服务 Windo