当前位置:实例文章 » C#开发实例» [文章]C#中使用User32.dll的常见用法示例

C#中使用User32.dll的常见用法示例

发布人:shili8 发布时间:2024-11-19 04:34 阅读次数:0

**使用 User32.dll 的 C# 示例**

`User32.dll` 是 Windows API 中的一个重要库,提供了许多用于操作系统交互的函数。C# 程序员可以通过 P/Invoke(Platform Invoke)技术在 C# 中调用这些函数。下面是一些常见用法示例。

###1. 获取当前窗口句柄`GetForegroundWindow()` 函数返回当前激活的窗口的句柄。

csharpusing System;
using System.Runtime.InteropServices;

class Program{
 [DllImport("User32.dll")]
 static extern IntPtr GetForegroundWindow();

 static void Main()
 {
 IntPtr hwnd = GetForegroundWindow();
 Console.WriteLine(hwnd);
 }
}

###2. 获取窗口标题`GetWindowText()` 函数返回指定窗口的标题。
csharpusing System;
using System.Runtime.InteropServices;

class Program{
 [DllImport("User32.dll")]
 static extern bool GetWindowText(IntPtr hwnd, StringBuilder lpString, int nMaxCount);

 static void Main()
 {
 IntPtr hwnd = GetForegroundWindow();
 StringBuilder sb = new StringBuilder(256);
 if (GetWindowText(hwnd, sb,256))
 {
 Console.WriteLine(sb.ToString());
 }
 }
}

###3. 获取窗口大小`GetWindowRect()` 函数返回指定窗口的矩形区域。
csharpusing System;
using System.Runtime.InteropServices;

class Program{
 [DllImport("User32.dll")]
 static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);

 [StructLayout(LayoutKind.Sequential)]
 public struct RECT {
 public int Left;
 public int Top;
 public int Right;
 public int Bottom;
 }

 static void Main()
 {
 IntPtr hwnd = GetForegroundWindow();
 RECT rect;
 if (GetWindowRect(hwnd, out rect))
 {
 Console.WriteLine($"Width: {rect.Right - rect.Left}, Height: {rect.Bottom - rect.Top}");
 }
 }
}

###4. 创建新窗口`CreateWindowEx()` 函数创建一个新的顶级窗口。
csharpusing System;
using System.Runtime.InteropServices;

class Program{
 [DllImport("User32.dll")]
 static extern IntPtr CreateWindowEx(
 uint dwExStyle,
 string lpClassName,
 string lpWindowName,
 uint style,
 int x,
 int y,
 int nWidth,
 int nHeight,
 IntPtr hWndParent,
 IntPtr hMenu,
 IntPtr hInstance,
 IntPtr lpParam );

 static void Main()
 {
 IntPtr hwnd = CreateWindowEx(
0, // dwExStyle "STATIC", // lpClassName "Hello, World!", // lpWindowName0x00000000, // style100, // x100, // y200, // nWidth50, // nHeight IntPtr.Zero, // hWndParent IntPtr.Zero, // hMenu Marshal.GetHINSTANCE(typeof(Program)), // hInstance IntPtr.Zero // lpParam );
 Console.WriteLine(hwnd);
 }
}

###5. 显示窗口`ShowWindow()` 函数显示指定窗口。
csharpusing System;
using System.Runtime.InteropServices;

class Program{
 [DllImport("User32.dll")]
 static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);

 static void Main()
 {
 IntPtr hwnd = GetForegroundWindow();
 ShowWindow(hwnd,9); // SW_SHOW }
}

这些示例展示了如何使用 `User32.dll` 的函数在 C# 中进行窗口操作。

相关标签:c#开发语言
其他信息

其他资源

Top