C#模拟键盘按键输入到当前活动窗口按键清空文本框内容
时间: 2024-09-19 10:10:10 浏览: 59
unity模拟键盘按键输入
在C#中,你可以通过发送Windows API消息来模拟键盘按键输入,包括清空文本框的内容。以下是一个简单的示例,使用`SendKeys`类配合WinAPI函数`PostMessage`来实现:
```csharp
using System;
using System.Runtime.InteropServices;
public static class KeyboardSimulator {
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
private static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
const uint WM_KEYDOWN = 0x0100;
const uint WM_KEYUP = 0x0101;
const int VK_CLEAR = 0x04; // 空格键清除文本
public static void ClearTextBox(string windowTitle) {
// 找到目标窗口句柄
IntPtr hWnd = FindWindow(null, windowTitle);
if (hWnd == IntPtr.Zero) throw new Exception($"无法找到窗口标题为'{windowTitle}'的窗口");
// 清除文本框内容(按下并释放空格键)
PostMessage(hWnd, WM_KEYDOWN, (int)VK_CLEAR, 0); // 按下
PostMessage(hWnd, WM_KEYUP, (int)VK_CLEAR, 0); // 释放
}
}
// 调用示例
try {
KeyboardSimulator.ClearTextBox("你的文本框标题");
} catch (Exception ex) {
Console.WriteLine($"操作失败: {ex.Message}");
}
```
这个例子中,我们首先查找具有给定标题的窗口,然后模拟按下和释放空格键的行为来清空文本框。请注意,你需要确保有足够的权限访问这些系统功能,并且这个方法可能只适用于控制台应用程序,对于WPF或UI线程的操作,需要额外处理。
阅读全文