c# 通过句柄获得值
时间: 2023-08-02 10:15:09 浏览: 110
C#操作窗口类(句柄操作)
3星 · 编辑精心推荐
在C#中,可以使用`GetWindowText`函数来获取句柄对应窗口的文本信息。该函数定义在`user32.dll`中,需要使用`DllImport`特性进行导入。该函数的使用方法如下:
```csharp
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
```
其中,`hWnd`为指定窗口的句柄;`lpString`为用于存储窗口文本的字符串缓冲区;`nMaxCount`为缓冲区的最大长度。
下面是一个示例代码,演示如何获取指定句柄窗口的文本:
```csharp
IntPtr hWnd = // 获取窗口句柄
int length = GetWindowTextLength(hWnd);
StringBuilder sb = new StringBuilder(length + 1);
GetWindowText(hWnd, sb, sb.Capacity);
string windowText = sb.ToString();
```
在示例代码中,首先使用`GetWindowTextLength`函数获取窗口文本的长度,然后创建一个足够长的字符串缓冲区,并使用`GetWindowText`函数将窗口文本复制到缓冲区中。最后,通过调用`ToString`方法将缓冲区中的字符串转换为C#中的字符串类型。
阅读全文