2016-10-08 18 views
0

Iボタンが存在する場所にプログラムがあります。ボタンを押すと、押されたキーをシミュレートする必要があります。ただし、SendKeysまたはInputManagerを使用すると、特定のキーのみが送信されますが、キーは送信されません。C#SendKeysまたはInputManagerで、DownKeyまたはUpKeyのみを送信する>

ボタンを押すとキーダウンをシミュレートし、キーを離すとキーボードにキーを送信するメソッドが必要です。

+0

は、使用しているフレームワーク、ライブラリ、技術などの詳細を提供します動作するはずです。 –

答えて

0

これは

using System.Runtime.InteropServices;

[DllImport("user32.dll", SetLastError = true)] 
    private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); 
    public static void PressKey(Keys key, bool up) 
    { 
     const int KEYEVENTF_EXTENDEDKEY = 0x1; 
     const int KEYEVENTF_KEYUP = 0x2; 
     if (up) 
     { 
      keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0); 
     } 
     else 
     { 
      keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0); 
     } 
    } 

    private void buttonUp_MouseDown(object sender, MouseEventArgs e) 
    { 
     PressKey(Keys.Up, false); 
    } 

    private void buttonUp_MouseUp(object sender, MouseEventArgs e) 
    { 
     PressKey(Keys.Up, true); 
    } 
関連する問題