C#在焦点所在的文本框中复制文本

时间:2011-09-29 23:47:46

标签: c# windows-ce

我有这个问题,不知道从哪里开始。我需要编写一个将在WinCE中运行的程序,因此需要Compact Framework,并且该程序必须在光标所在的位置写入文本(字符串)。我的意思是,如果我的程序正在运行,并且光标位于记事本窗口中。文本必须显示在记事本中。或者,如果光标位于文本框内的另一个应用程序中(如果该应用程序是用java编写的,则为textfield),文本必须放在该文本框中。

我能够完成程序所需的所有其他功能,但我不知道该怎么做。据我所知,它是用API完成的。这就是我能理解的全部。

任何帮助都会被贬低。

谢谢!

2 个答案:

答案 0 :(得分:2)

首先想到的是SendKeys。这是一种模拟打字的简单方法。

答案 1 :(得分:0)

我们使用P / Invoke keybd_event生成键盘输入。我能想到的唯一其他方法是将您的字符串放在剪贴板中,并生成粘贴键笔划。我不确定你遇到的每个应用程序都会对CTRL + V作出相同的响应。也许有办法从您的应用程序以编程方式触发粘贴?

[DllImport("coredll.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

这应该会产生一个无声的A键击。

keybd_event((byte)Keys.A, 0, 0, 0x0004);
keybd_event((byte)Keys.A, 0, 0x0002, 0x0004);