我正在制作一个应用程序,可让您使用 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);
}
}
但是为了模拟对该项目的右键单击,应用程序必须知道它的位置。