我使用win32api创建了一个小的Python脚本,用于热门游戏Cookie Clicker(一个你必须点击一个Big Cookie来获得积分的游戏),这只是为了好玩。它有一个名为“auto_clicker”的功能就是这样:在用户定义的点上不断点击屏幕。这是脚本:
# -*- coding: utf-8 -*-
import win32con
import win32api
def clicker(x,y):
"""Clicks on given position x,y
Input:
x -- Horizontal position in pixels, starts from top-left position
y -- Vertical position in pixels, start from top-left position
"""
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
def auto_clicker(x = -1,y = -1):
"""Keep clicking on position x,y. If no input is given, gets from actual
mouse position.
"""
if x == -1 | y == -1:
x,y = win32api.GetCursorPos()
while True:
clicker(x,y)
它很好用,但我想做一些改进:
如果用户在调用函数时点击,我怎样才能获取光标位置?我宁愿不添加另一个模块 因为win32api似乎包含了我需要的一切。试过this 方法没有成功。
如何检测像“Escape”这样的按键,这样我就可以退出程序而不用我现在使用的丑陋黑客(Ctrl + Alt + Del似乎会让SetCursorPos拒绝访问,所以Python会抛出一个错误并退出该计划。)
我可以将这个程序移植吗?好像我可以使用Tkinter并生成一个看不见的Tk窗口,但我试着写一些没有成功的东西。
答案 0 :(得分:0)
我不认为使用win32api你可以听到你可以生成它们的点击(虽然不确定)。但是,尝试使用pyHook,它是一个简单易用的API,可以在http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=Main_Page找到。使用pyhook,您可以创建一个监听器来监听鼠标事件,点击鼠标即可随心所欲,链接中的示例向您展示如何操作。对于按键,你也可以使用相同的api,也提供了一个例子,祝你好运!
答案 1 :(得分:0)
使用pynput。它可以控制鼠标,键盘等。
示例:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:3000",
"sslPort": 44321
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}