控制鼠标或键盘的程序

3
我试图学习如何编写的程序控制正在运行的GUI程序。我不确定GUI程序是否必然会为开发人员公开API。因此,我认为最好的方法是让我的程序能够暂时独占地控制键盘和鼠标,或者与用户共享控制权(只要用户没有使用程序可以控制鼠标/键盘的资源)。
我不确定如何做到这一点。我知道C/C++,Python和Java。我主要想在Windows上实现这个功能(我知道C#)。
我不太确定我在寻找什么(关键词方面),所以我不知道如何搜索信息。任何帮助都将不胜感激。
编辑:我想提到,我只是在寻找一种方法,让我的代码控制鼠标和键盘。这段代码的输入将来自另一段代码,后者(希望)知道鼠标/键盘将要执行的任务。目前,我只想学习如何使用预定义的控制命令(例如,移动到位置(100,100)、单击、输入“abcd”等)使我的代码控制鼠标/键盘。

你不想控制鼠标(光标)或键盘,而是要发送诸如WM_CLICK之类的消息到正确的窗口(更确切地说,是在正确的窗口内的正确元素)。 - ThiefMaster
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx - chris
3个回答

3

如果您想模拟一些鼠标/键盘事件,请使用SendInput。


1
如果您知道如何使用Python编程,那么有一个名为pyautogui的模块。 要安装此模块,请按照以下步骤操作: 如果您正在使用Windows并已安装Python。 确保您已连接到互联网 打开CMD并键入:pip install pyautogui

1
你可以使用system.windows.forms在C#中移动鼠标和输入键盘。例如,以下代码使用system.windows.forms的基本方法来移动鼠标和写入键盘输入。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//Make sure to add these as references in your project ahead of time
using System.Drawing;
using System.Windows.Forms;

namespace ConsoleApplication14
{
class Program
{
    static void Main(string[] args)
    {
        //The following code sets the cursor position to the point Xpos,Ypos 
//on the screen
        int Xpos = 0;
        int Ypos = 0;
        Cursor.Position = new Point(Xpos,Ypos);

        //The following writes the string KeyData to keyboard input
        string KeyData = "Hello World";
        SendKeys.SendWait(KeyData);
    }
}
}

你还需要System.Drawing来操作鼠标光标的点,所以不要忘记它!
这是一个包含与鼠标和键盘移动相关信息的精彩视频https://www.youtube.com/watch?v=48k9eyVsC-M 注意:虽然这些方法对于移动鼠标非常好,但据我所知它们不能使鼠标点击,因此您需要在其他地方进行研究以获取该信息。
祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接