当我玩帝国时代或其他策略游戏时,我经常需要将某些资源出售 100 次,然后再出售一次。 这很烦人:(
我写了一个程序,通过点击鼠标来帮助我:
//This is the decleration
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
private void ClickTheMouse()
{
int X = Cursor.Position.X;
int Y = Cursor.Position.Y;
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}
然后通过使用计时器和上面的代码我可以点击 30 次。
它在 Windows 和 Windows 中(word、Firefox 等)甚至在帝国时代都运行良好,但不幸的是它在“Stronghold crusader”和其他一些我不记得它们的游戏中不起作用名字。
我假设发生这种情况是因为点击是在高级别模拟的,如果它被模拟得更接近驱动程序级别,它就会起作用。
我有两个问题:
- 我的假设正确吗?
- 我怎样才能在较低的级别模拟鼠标点击,这将在这个游戏中起作用?
我使用 c#,但任何 c++ 代码也有帮助(我将只使用 PInvoke)。
谢谢,
最佳答案
我曾经遇到过同样的问题。您是否尝试通过 VS2010 中的发布/调试编译器使用该应用程序?如果是这样,请尝试单独运行单独的编译文件,如果适用,请记住以管理员身份运行它。
无论出于何种原因,当由 VSHost 托管时,我的机器人在某些游戏中拒绝正常工作。
关于c# - 如何在 c# 中模拟鼠标点击,这将在游戏中起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735569/