【发布时间】:2011-05-19 03:54:23
【问题描述】:
我正在尝试将字符串值插入第三方应用程序,例如记事本。下面是我正在使用的代码
[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 值 = 84Ascii 值 = 104
Ascii 值 = 105
Ascii 值 = 115
Ascii 值 = 32
Ascii 值 = 105
Ascii 值 = 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
}
请有人帮忙 谢谢, 尼基尔
【问题讨论】:
-
这是一个使用SendKeys的示例。
标签: .net events keyboard virtual keypress