Catching keystrokes under Windows
Michael Geary
Mike at DeleteThis.Geary.com
Wed Nov 19 15:09:26 EST 2003
More information about the Python-list mailing list
Wed Nov 19 15:09:26 EST 2003
- Previous message (by thread): Catching keystrokes under Windows
- Next message (by thread): trouble with regex with escaped metachars (URGENT please O:-)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Olli Piepponen: > I'm having a little problem catching keystrokes under Windows. > I did a little research and found that with mscvrt.getch() one > can cath a single key that is pressed. However this doesn't work > when the program is run on the backround and not as the > primary task. What I would like to have is a same sort of > function that would also work when the program is being run > on the background. I'm trying to implement a program that > would listen for a certain key to be pressed and then start a > timer that would *beep* after 30 seconds or so. I've > everything else sorted out except how to catch the one key. > > So is there an easy way like msvcrt.getch() is or does one have > to start playing with the win32api module? If the > win32api-module is needed for this task could you also explain > how? Python is my first real programming language so I don't > understand too much about C\C++ stuff. Examples would be > highly appreciated. To do this for all Windows applications, you need to use a systemwide message hook, which is set with the Windows function SetWindowsHookEx using the WH_KEYBOARD option. The hook code must be in a DLL (dynamic link library) and should be written in a language like C or C++. This is a fairly advanced bit of Windows programming, and you wouldn't want to tackle it without some prior experience in both Windows and C/C++. However, Pete Parente wrote a DLL that does this keystroke interception and calls back to Python code to handle the keystrokes. I haven't looked at Pete's code yet, but you can find it here: http://sourceforge.net/projects/uncassist pyHook is what you're looking for on that page. Below is Pete's original message with some more information. Hope that helps, Mike "Peter Parente" <parente at cs.unc.edu> wrote in message news:85b6a599.0308250326.15d20640 at posting.google.com... > Change of plans. The hooks library is at > http://www.sourceforge.net/projects/uncassist. You can download and > run the pyHook windows installer, or check it out of CVS. There's an > example.py file in the CVS pyHook module that shows you how to use it > (requires wxPython for the GUI). > > Pete > > parente at cs.unc.edu (Peter Parente) wrote in message news:<85b6a599.0308230628.49ba3c74 at posting.google.com>... > > I have a Python library that can capture system wide keystrokes and > > mouse events. Basically, the windows hooking code is in a C Python > > extension that passes callback information back to Python when an > > event occurs. I'll > > post it to our Python tools sourceforge site in the near future. (I > > need to clean it up a bit and provide an example before it will be the > > least bit useful to you.) > > > > When it's posted, it will appear at > > http://sourceforge.net/projects/uncpythontools/ as the pyHook project. > > > > Pete > > > > > > hokieghal99 <hokiegal99 at hotmail.com> wrote in message news:<bi66lq$skj$1 at solaris.cc.vt.edu>... > > > Does anyone know of a keystroke logger that has been written in Python > > > for Windows machines? I'd like to see such a script and use it as a > > > point of reference for a real-time backup project that I'm working on. > > > Basically, I'd like to be able to capture all keystrokes from the > > > keyboard buffer and write them to a text file so I could reporduce > > > emails, documents, etc. in the event of file loss that occurs between > > > nightly backups. For example, my boss comes to me, he has deleted an > > > email that he was writing... he has been working on the email all day... > > > and he expects me to wave a magic wand and bring it back. > > > > > > Thanks for any advice, code or pointers. Also, if Python isn't suited > > > for this, let me know and I'll look at doing this in c
- Previous message (by thread): Catching keystrokes under Windows
- Next message (by thread): trouble with regex with escaped metachars (URGENT please O:-)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list