代码之家  ›  专栏  ›  技术社区  ›  Vivelin

模拟鼠标移动(C)

  •  3
  • Vivelin  · 技术社区  · 16 年前

    我该如何制作一个小程序来保持鼠标向上移动?


    对于那些想知道的人来说,这是一个很小的用途。我在打《星球大战》,原力释放了。在控制台版本中,您可以向上握住右杆。在 坏的 电脑上的控制台端口,您使用的是鼠标。也许你能理解我的沮丧。

    4 回复  |  直到 16 年前
        1
  •  9
  •   John Knoeller    16 年前

    SetCursorPos 将在非托管代码中执行此操作。我不确定是否有.NET方法可以这样做,但您可以始终使用COM互操作。在user32.dll中

    [DllImport("user32.dll")]
    static extern bool SetCursorPos(int X, int Y);
    

    一个小谷歌产生了这个作为 SetCursorPos equivalent for .net

    System.Windows.Form.Cursor.Position
    
        2
  •  15
  •   jball    16 年前

    这是机械编程的问题,而不是CSharp。

    • 你需要插入第二个鼠标, 然后用便宜的变速绳 钻头。
    • 在 钻孔,用条纹纸包起来, 并将其设置为最低速度。
    • 然后把支架放在非旋转的 将支撑 鼠标及其传感器靠近 纺条纹纸。
    • 确保鼠标朝向正确的方向 模拟向上运动。

    要执行该程序,请翻转钻头插入的电源板上的电源开关。

    编辑:如果你想要更便携的代码,使用无绳电钻。不包括电池。

        3
  •  3
  •   John Rudy    16 年前

    我不知道这个游戏,但Windows内部会发出鼠标移动的消息。这些是由 SendMessage() 对应用程序的API调用。在C中,您要么直接使用相同的win32 api,要么创建/发送一个事件?但不确定如何将事件发送到另一个正在运行的应用程序。

    在C中定义的sendmessage()win32 API调用如下所示:

    [DllImport("user32.dll")]
            public static extern int SendMessage(
                  int hWnd,     // handle to destination window
                  uint Msg,     // message
                  long wParam,  // first message parameter
                  long lParam   // second message parameter
                  );
    
        4
  •  2
  •   Woot4Moo    16 年前

    你试过使用控制器或操纵杆吗?

    http://www.merconnet.com/product_info.php?products_id=44