文字列値をサードパーティのアプリケーション(メモ帳など)に挿入しようとしています。以下は、「これはテストメッセージである」私はたとえばサンプルテキストメッセージを与えている私はキーボードイベントをシミュレートする
[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午後01時38 02/12/2010513:38 2010年2月12日-5175
これを解決するためにいくつかのいずれかの助けがでした。私はまた、コンソールに印刷ASCII値を入れてい
Messsage:これは、テストメッセージである
{
ASCII値= 84のASCII値= 104の
ASCII値= 105
アスキー値= 115
アスキー値= 32
アスキー値= 105
アスキー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/en-us/library/ms171548.aspx)でこれを行う方法の例を次に示します。 – detunized