繁体   English   中英

通过SendKeys.Send发送应用程序密钥

[英]Sending Application Key via SendKeys.Send

我正在开发一个应用程序,可让您使用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);
    }
}

但是,为了模拟右键单击该项目,应用程序必须知道其位置。

尝试

SendKeys.Send("+{F10}");

问候,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM