[CPyUG] python如何检测用户是否按下指定按键?

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG] python如何检测用户是否按下指定按键?

ream D
python如何检测用户是否按下指定按键(如F6键)?

--
一个python爱好者建的站:
http://dreampython.orgs.hk
大家不要认为我有分裂组织之嫌疑哈,不足之处给点建议吧!

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] python如何检测用户是否按下指定按键?

Andelf


2010/6/28 ream D <dream.python.org@gmail.com>
python如何检测用户是否按下指定按键(如F6键)?

--

pyHook 

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] python如何检测用户是否按下指定按键?

xpen
pyhook 是不是只能在windows环境下使用啊?

在 2010年6月28日 下午11:14,Andelf <[hidden email]>写道:


2010/6/28 ream D <dream.python.org@gmail.com>
python如何检测用户是否按下指定按键(如F6键)?

--

pyHook 

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] python如何检测用户是否按下指定按键?

ream D
能给出实例么?


--
一个python爱好者建的站:
http://dreampython.orgs.hk
大家不要认为我有分裂组织之嫌疑哈

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] python如何检测用户是否按下指定按键?

amingsc
In reply to this post by ream D
Windows下面可以用pyHook,其他的可以搜索关键字“Global Keyboard Hook  Linux

在 2010年6月28日 下午11:03,ream D <dream.python.org@gmail.com>写道:
python如何检测用户是否按下指定按键(如F6键)?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: Re: [CPyUG] python如何检测用户是否按下指定按键?

flyingzl
import pythoncom, pyHook 
 
def OnKeyboardEvent(event):
    print 'MessageName:',event.MessageName
    print 'Message:',event.Message
    print 'Time:',event.Time
    print 'Window:',event.Window
    print 'WindowName:',event.WindowName
    print 'Ascii:', event.Ascii, chr(event.Ascii)
    print 'Key:', event.Key
    print 'KeyID:', event.KeyID
    print 'ScanCode:', event.ScanCode
    print 'Extended:', event.Extended
    print 'Injected:', event.Injected
    print 'Alt', event.Alt
    print 'Transition', event.Transition
    print '---'
 
# return True to pass the event to other handlers
    return True
 
# create a hook manager
hm = pyHook.HookManager()
# watch for all key events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
 
 
 
具体可以看
 
 
2010-06-29

flyingzl

发件人: amingsc
发送时间: 2010-06-29  09:40:35
收件人: python-cn
抄送:
主题: Re: [CPyUG] python如何检测用户是否按下指定按键?
Windows下面可以用pyHook,其他的可以搜索关键字“Global Keyboard Hook  Linux

在 2010年6月28日 下午11:03,ream D <dream.python.org@gmail.com>写道:
python如何检测用户是否按下指定按键(如F6键)?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: Re: [CPyUG] python如何检测用户是否按下指定按键?

ALENS(蓝)
能模拟用户直接对进程发送按键消息不

2010/6/29 flyingzl <[hidden email]>
import pythoncom, pyHook 
 
def OnKeyboardEvent(event):
    print 'MessageName:',event.MessageName
    print 'Message:',event.Message
    print 'Time:',event.Time
    print 'Window:',event.Window
    print 'WindowName:',event.WindowName
    print 'Ascii:', event.Ascii, chr(event.Ascii)
    print 'Key:', event.Key
    print 'KeyID:', event.KeyID
    print 'ScanCode:', event.ScanCode
    print 'Extended:', event.Extended
    print 'Injected:', event.Injected
    print 'Alt', event.Alt
    print 'Transition', event.Transition
    print '---'
 
# return True to pass the event to other handlers
    return True
 
# create a hook manager
hm = pyHook.HookManager()
# watch for all key events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
 
 
 
具体可以看
 
 
2010-06-29

flyingzl

发件人: amingsc
发送时间: 2010-06-29  09:40:35
收件人: python-cn
抄送:
主题: Re: [CPyUG] python如何检测用户是否按下指定按键?
Windows下面可以用pyHook,其他的可以搜索关键字“Global Keyboard Hook  Linux

在 2010年6月28日 下午11:03,ream D <dream.python.org@gmail.com>写道:
python如何检测用户是否按下指定按键(如F6键)?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: Re: [CPyUG] python如何检测用户是否按下指定按键?

hejibo
In reply to this post by flyingzl
我玩过这个代码。
不过它似乎会一直不停的运行。如果我想同时运行另一个软件,如wxpython下的html browser。
应该怎么做呀?

---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info



2010/6/29 flyingzl <[hidden email]>
import pythoncom, pyHook 
 
def OnKeyboardEvent(event):
    print 'MessageName:',event.MessageName
    print 'Message:',event.Message
    print 'Time:',event.Time
    print 'Window:',event.Window
    print 'WindowName:',event.WindowName
    print 'Ascii:', event.Ascii, chr(event.Ascii)
    print 'Key:', event.Key
    print 'KeyID:', event.KeyID
    print 'ScanCode:', event.ScanCode
    print 'Extended:', event.Extended
    print 'Injected:', event.Injected
    print 'Alt', event.Alt
    print 'Transition', event.Transition
    print '---'
 
# return True to pass the event to other handlers
    return True
 
# create a hook manager
hm = pyHook.HookManager()
# watch for all key events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
 
 
 
具体可以看
 
 
2010-06-29

flyingzl

发件人: amingsc
发送时间: 2010-06-29  09:40:35
收件人: python-cn
抄送:
主题: Re: [CPyUG] python如何检测用户是否按下指定按键?
Windows下面可以用pyHook,其他的可以搜索关键字“Global Keyboard Hook  Linux

在 2010年6月28日 下午11:03,ream D <dream.python.org@gmail.com>写道:
python如何检测用户是否按下指定按键(如F6键)?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: [CPyUG] python如何检测用户是否按下指定按键?

flyingzl
呵呵。。看下面的代码
 

Any application that wishes to receive notifications of global input events must have a Windows message pump. The easiest way to get one of these is to use the PumpMessages method in the Win32 Extensions package for Python.

import pythoncom 
pythoncom.PumpMessages()

When run, this program just sits idle and waits for Windows events. If you are using a GUI toolkit (e.g. wxPython), this loop is unnecessary since the toolkit provides its own.

 
 
2010-06-29

flyingzl

发件人: He Jibo
发送时间: 2010-06-29  20:30:37
收件人: python-cn
抄送:
主题: Re: Re: [CPyUG] python如何检测用户是否按下指定按键?
我玩过这个代码。
不过它似乎会一直不停的运行。如果我想同时运行另一个软件,如wxpython下的html browser。
应该怎么做呀?

---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info



2010/6/29 flyingzl <[hidden email]>
import pythoncom, pyHook 
 
def OnKeyboardEvent(event):
    print 'MessageName:',event.MessageName
    print 'Message:',event.Message
    print 'Time:',event.Time
    print 'Window:',event.Window
    print 'WindowName:',event.WindowName
    print 'Ascii:', event.Ascii, chr(event.Ascii)
    print 'Key:', event.Key
    print 'KeyID:', event.KeyID
    print 'ScanCode:', event.ScanCode
    print 'Extended:', event.Extended
    print 'Injected:', event.Injected
    print 'Alt', event.Alt
    print 'Transition', event.Transition
    print '---'
 
# return True to pass the event to other handlers
    return True
 
# create a hook manager
hm = pyHook.HookManager()
# watch for all key events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
 
 
 
具体可以看
 
 
2010-06-29

flyingzl

发件人: amingsc
发送时间: 2010-06-29  09:40:35
收件人: python-cn
抄送:
主题: Re: [CPyUG] python如何检测用户是否按下指定按键?
Windows下面可以用pyHook,其他的可以搜索关键字“Global Keyboard Hook  Linux

在 2010年6月28日 下午11:03,ream D <dream.python.org@gmail.com>写道:
python如何检测用户是否按下指定按键(如F6键)?

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: Re: [CPyUG] python如何检测用户是否按下指定按键?

Zephyr-4
In reply to this post by ALENS(蓝)
有一个叫 virtkey 的包可以模拟键盘行为:

import virtkey

def Ctrl_Space():
    '按一下Ctrl_Space'
    time.sleep(.3)
    v = virtkey.virtkey()
    v.lock_mod(1<<2) #CTRL_
    try:
        v.release_unicode(32) #SPACE
    finally:
        v.unlock_mod(1<<2)

......

            threading.Thread(target=Ctrl_Space).start()

......

不过,我没在windows下用过。

在 2010年6月29日 下午8:26,ALENS <[hidden email]>写道:
能模拟用户直接对进程发送按键消息不

--
From:  Yesheng Zou

--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp