如何在没有聚焦的情况下获得关闭程序的密钥

时间:2015-04-28 18:47:53

标签: python

- 自动点击计划 -

嗨,我一直在编写这个程序并遇到了这个问题,当我运行它时我无法关闭它,因为当我使用它时它没有集中注意力,我一直在测试这个游戏Cookie Clicker程序进行真正的测试。

import win32api
import win32con
import msvcrt


def click(x, y): 
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0,  0)

# 27 = esc | 13 = enter | 80 = down arrow | 72 = up arrow

counter = 0
try:
    while counter < 20000:
         click(230, 470)
         if msvcrt.kbhit() and ord(msvcrt.getch()) == 27:
             print("abort")
             break
         counter += 1
except KeyboardInterrupt:
    pass

我没有运气找到一种方法来拥有它以便我可以绑定一个键来杀死程序,这样我可以杀死它而不关注它,有点像全球热键。

非常感谢任何帮助!

提前谢谢!

1 个答案:

答案 0 :(得分:2)

Detecting Key Presses using win32api in Python

凯文说我抬头看了GetKeyState。

现在这个工作......

import win32api
import win32con


def click(x, y):
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0,  0)

counter = 0
try:
    while counter < 50000:
        click(230, 475)

        if win32api.GetAsyncKeyState(ord('H')):
            break
        counter += 1
except KeyboardInterrupt:
    pass