Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
775 views
in Technique[技术] by (71.8m points)

How to implement key combinations (including modifier keys) in Python?

I am wondering about bow to implement two-key combinations in Python. I am utilizing the turtle.onkey() function since I am using turtle graphics, but it seems like it is not very versatile, as I cannot find a way for it to take key combinations. So, is there any other way to implement key combinations in python? Any help regarding this issue is very much appreciated! :)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I use pykeyboard ( with Python 2.7 ) to "simultaneously press" 2 keyboard keys as a hotkey. The pykeyboard package comes installed with the PyUserInput installation.

Code Example : If I want to automatically have my program hit the hotkey combination ( CTRL + P ) to print something without me laying a finger on the keyboard, here is how I would do it through pykeyboard.

import pykeyboard
keyboard_object = pykeyboard.PyKeyboard()

I begin by creating my keyboard object as shown above.

keyboard_object.press_key   ( keyboard_object.control_key )
keyboard_object.tap_key     ( "P" )  # Upper-Case
keyboard_object.release_key ( keyboard_object.control_key )

That should bring up the print window and I could have it continue forward to print on the default setting by having my script hit the Enter Key.

keyboard_object.tap_key ( keyboard_object.enter_key )

I can even have my script type custom strings. This can be useful if I want to save a file by a specified string in an automated form. I'll begin with the ( CTRL + S ) hotkey combination.

keyboard_object.press_key   ( keyboard_object.control_key )
keyboard_object.tap_key     ( "S" )  # Upper-Case
keyboard_object.release_key ( keyboard_object.control_key )

The "Save-As" window should pop up, prompting me to specify the filename that I want to have saved. So I'll pass that as a string.

keyboard_object.type_string ( "MyFilename-03_22_2016.html" )
keyboard_object.tap_key ( keyboard_object.enter_key )

Voila!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...