2014-07-12 47 views
-1

沒有人知道我可以通過按鍵在python 2.7中執行代碼嗎?我在想,也許我應該做一個無形的窗口,並按下它執行代碼,我可以在一個函數下?有誰知道我能做到嗎?如何在python 2.7中使用keypress執行代碼?

我試圖做一些需要截圖的東西,我有這個,但我希望它是在按下按鍵而不是每次運行程序時。

import wx 
import random 
import getpass 
from time import gmtime, strftime 
Time = strftime("%Y-%m-%d %H:%M:%S", gmtime()) 
User = getpass.getuser() 
app= wx.App() 
screen = wx.ScreenDC() 
size = screen.GetSize() 
bmp = wx.EmptyBitmap(size[0], size[1]) 
mem = wx.MemoryDC(bmp) 
mem.Blit(0, 0, size[0], size[1], screen, 0, 0) 
del mem # Release bitmap 
Time = Time.replace(':','-') 
Name = Time + '.png' 
Name = Name.replace(' ', '%20') 
bmp.SaveFile(Name, wx.BITMAP_TYPE_PNG) 

是否有反正我可以使這激活underkeypress?

+0

對於所有系統的關鍵速效你必須註冊在系統中,這關鍵還是直接從系統中讀取鑰匙 - 這取決於系統 – furas

+0

查找在Python一些鍵盤記錄 - 它知道如何抓住按鍵。 – furas

回答

0

你可以使用一個最小化的pygame的窗口拿到按鍵:

import pygame, sys 
from pygame.locals import * 
pygame.init() 

windowSurface = pygame.display.set_mode((1, 1)) 

pygame.display.iconify() 

while True: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
    if pygame.key.get_pressed()[pygame.K_UP]: 
     #DO something if the player hits the UP arrow key 
     print 'up!' 
+0

但是,如果最小化窗口鬆散焦點呢? – furas

+0

我只能說 - 這種方法不適用於Linux:/ – furas

+0

:)這似乎工作在我的mac – ZenOfPython

相關問題