Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pynput:命令行外的输入_Python_Macos_Pynput - Fatal编程技术网

Python Pynput:命令行外的输入

Python Pynput:命令行外的输入,python,macos,pynput,Python,Macos,Pynput,我正在尝试使用pynput编写一个python3脚本,它按下一个键,以便自动执行我必须执行的重复任务。代码如下: import time from pynput.keyboard import Key, Controller keyboard = Controller() keyboard.press(Key.enter) keyboard.release(Key.enter) # Press and release space while True: keyboard.press(

我正在尝试使用pynput编写一个python3脚本,它按下一个键,以便自动执行我必须执行的重复任务。代码如下:

import time
from pynput.keyboard import Key, Controller

keyboard = Controller()

keyboard.press(Key.enter)
keyboard.release(Key.enter)
# Press and release space
while True:
    keyboard.press(Key.space)
    keyboard.release(Key.space)
    time.sleep(1)

我的问题是它可以工作,但只能在命令行中工作。我不知道如何将输入导出到打开的窗口,并执行我必须执行的任务。我使用的是OsX系统。提前感谢您。

它只在控制台中工作,因为击键保持在python环境中。要与应用程序交互,您需要使用操作系统。在python中使用
os.system()
执行此操作。由于脚本是从控制台运行的,所以需要首先切换到目标应用程序

模拟Alt+Tab:

os.system('\nosascript -e \'tell application "System Events" to key code 48 using {command down}\' \n')
您需要在key-down和key-up命令之间添加延迟,因为OpenEmu无法以脚本执行的速度检测key-up


这篇文章有更多信息

任务是应用程序的一部分吗?这是文件系统任务吗?是从文件中读取数据吗?你能更详细地描述一下你想要实现的目标吗?我们只知道代码在控制台中工作。我正在开发一个游戏的mod,它在openemu中模拟,我需要在openemu窗口中多次按同一个键,因此它是应用程序的一部分。我知道这是一个愚蠢的问题,但我不理解使用{command down}部分的
键代码48。我的意思是,为什么要模拟alt+cmd?我怎样才能模拟其他按键组合呢?谢谢,总的来说,你的解决方案是我发现的最理想的,即使事实证明OpenEmu不支持AppleScript,但只支持一种相当模糊的第三方脚本语言,所以我不得不放弃。对于任何其他任务,我认为这个解决方案都是好的。Command是苹果版本的alt。Key code 48是tab。我的示例使用python告诉操作系统切换窗口。下面是AppleScript键盘命令的列表这是另一个有用的资源