0

SendKeys を使用してアイテム間を移動できるアプリを作成しています。選択した項目を右クリックするためにアプリケーション キー (コンテキスト メニュー) を送信しようとする場合を除いて、すべてがうまく機能します。
私が使う:

SendKeys.Send("{APPSKEY}");

「キーワード「APPSKEY」は無効です」というエラーが表示されます。

私はそれをグーグルで検索し、このウェブサイトで見つけました:
http://www.autohotkey.com/docs/commands/Send.htm
しかし、それは c# では機能しないと思います。

選択したアイテムを右クリックする他の方法はありますか?
マウスをそこに移動して右クリックするためにアイテムがどこにあるかをアプリに伝える方法はありますか?

私のプログラムはMouseClicksを送信できます:

public partial class Form1 : Form
{
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention =
CallingConvention.StdCall)]
    public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint 
    cButtons, uint dwExtraInfo);
    private const int MOUSEEVENTF_LEFTDOWN = 0x02;
    private const int MOUSEEVENTF_LEFTUP = 0x04;
    private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
    private const int MOUSEEVENTF_RIGHTUP = 0x10;

    private void MoveCursor(Point loc)
    {
        this.Cursor = new Cursor(Cursor.Current.Handle);
        Cursor.Position = loc;
        Cursor.Clip = new Rectangle(0, 0, 0, 0);
    }

    private void DoMouseClick(bool isLeft)
    {
        int X = Cursor.Position.X;
        int Y = Cursor.Position.Y;
        if (isLeft) mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)X, (uint)Y, 0, 0);
        else mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, (uint)X, (uint)Y, 0, 0);
    }
}

ただし、そのアイテムの右クリックをシミュレートするために、アプリはアイテムの場所を認識している必要があります。

4

1 に答える 1