我想插入字符串值到第三方应用程序说,记事本。以下是我正在使用的代码模拟键盘事件
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
public void sim_type(string txt)
{
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
byte[] ASCIIValues = Encoding.ASCII.GetBytes(txt);
foreach (byte keyCode in ASCIIValues)
{
Console.WriteLine("Ascii Values = " + keyCode);
keybd_event(keyCode, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
keybd_event(keyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
}
}
我正在给示例文本消息例如“这是测试消息”。 我正在获取正确的ascii值。 但是在相应的示例消息的目标文本框中,我正在获取此输出。
T89 9 1 13:38 02/12/2010513:38 02/12/2010 -5175
能有人帮助解决这个问题。我还投入控制台打印的ASCII值
消息话题:这是一个测试消息
{
ASCII值= 84个ASCII值= 104个
ASCII值= 105
Ascii值= 115
Ascii值= 32
Ascii值= 105
Ascii值I值= 115个
ASCII值= 32个
ASCII值= 97个
ASCII值= 32个
ASCII值= 116个
ASCII值= 101个
ASCII值= 115个
ASCII值= 116个
ASCII值= 32个
ASCII值= 109个
ASCII值= 101个
ASCII值= 115个
ASCII值= 115
个 ASCII值= 97个
ASCII值= 103个
ASCII值= 101
}
请有人帮助 谢谢, Nikil
下面是如何使用[SendKeys](http://msdn.microsoft.com/zh-cn/library/ms171548.aspx)执行此操作的示例。 – detunized 2010-12-02 14:20:50