Nullreference Q&A 编程技术问答社区
第一次访问本站?请查看 FAQ!
x
+2 投票
118 浏览

C#中如何模拟键盘按键?

最新提问 5月 21, 2016 分类:C# | 用户: leno88 (400 分) | 118 浏览

1个回答

+2 投票
已采纳

示例代码:

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
	public partial class Form1 : Form
	{
		// 获取窗体句柄
		[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
		public static extern IntPtr FindWindow(string lpClassName,
			string lpWindowName);

		// 激活窗体
		[DllImport("USER32.DLL")]
		public static extern bool SetForegroundWindow(IntPtr hWnd);

		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
              // 向打开的 Notepad++ 窗口发送一串字符,并模拟按回车键
             // Classname 和 Windowname 可以用 spy++ 查看
			IntPtr calculatorHandle = FindWindow("Notepad++", "new 2 - Notepad++");

			if (calculatorHandle == IntPtr.Zero)
			{
				MessageBox.Show("程序未运行。");
				return;
			}

			SetForegroundWindow(calculatorHandle);

			SendKeys.SendWait("Overflow Q&A");
			SendKeys.Send("{ENTER}");  // 模拟按回车键
			SendKeys.SendWait("编程技术问答社区");
			SendKeys.Send("{ENTER}");  // 模拟按回车键
		}
	}
}

运行结果:

图片描述

最新回答 5月 21, 2016 用户: Anders (3,820 分)
采纳于 6月 2, 2016 用户:leno88
社区改名了:),非常感谢!