elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / Refresco tkinter de texto recibido en un callback en: 11 Mayo 2018, 11:58 am
Hola estoy haciendo un pequeño programa en python que escucha un servidor mqtt y lo muestra en pantalla en el modo consola no tengo problema pero quise poner una gui con tkinter y no se como hacer que cuando el callback de mensaje recibido refresque un text que esta dentro de una clase que corresponde a la ventana principal. Me podéis ayudar a ver como puedo hacerlo por que es lo unico que me falta y no se me ocurre.

Ventana Principal
Código:
class MyApp:
    def __init__(self, parent):
        self.parent = parent  
        self.parent.protocol("WM_DELETE_WINDOW", self.on_closing) #Indicas que cuando presiones la x de cerrar ventana

        #Ventana principal
        root.title(proyect +" "+ version)                      
        root.resizable (True, True)
        root.iconbitmap('pyc.ico')
        #root.geometry ("650x400")
        root.config (bg="black",bd="10", relief ="sunken")

        ventanainfo = Frame()
        ventanainfo.grid()
        #ventanainfo.config (bg="white", width ="630", height ="380", bd="10", relief ="sunken", cursor ="pirate")
        ventanainfo.config (bg="white", bd="10", relief ="sunken", cursor ="arrow")


        #Configuracion de elemetos sobre frame Principal
        #*****PANTALLA LOG**************
        pantallaLOG = Text(ventanainfo, width ="90", height ="18")
        pantallaLOG.grid (row="0", column ="0", padx=1,pady=1,rowspan=4)
        scrollLog = Scrollbar (ventanainfo, command = pantallaLOG.yview)
        scrollLog.grid (row="0", column ="1", padx=1,pady=1, sticky = "nSeW",rowspan=4)
        pantallaLOG.config (yscrollcommand = scrollLog.set)

        pantallaLOG.insert(INSERT, 'test.\n')
        global ultimoMensaje;
        pantallaLOG.insert(INSERT, ultimoMensaje +'\n')

Callback
Código:
def on_message(client, userdata, msg):
    
    global ultimoMensaje
    ultimoMensaje = (time.strftime("%d/%m/%y - %H:%M -> ")+"[" + msg.topic+"] "+str(msg.payload))
    print (ultimoMensaje)
Dejo el main desde el que se inician callback
Código:
if __name__ == "__main__":

    openConfig(); 

    myIP = getipextern()
    print (myIP)

    client = mqtt.Client(client_name)
    client.username_pw_set(user, password=password)
    client.on_connect = on_connect
    client.on_disconnect = on_disconnect
    client.on_publish = on_publish
    client.on_message = on_message
    #client.on_log = on_log              # Descomenta para activar el modo Debug
    client.on_subscribe = on_subscribe   # Callback de una supcripcion

    #Comienzo del GUI de usuario

    root = tk.Tk()
    app = MyApp(root)
   
    #****Bucle**********************
    root.mainloop()

    #*** Salida del programa
    print("Cerrando...")
    try:
        client.disconnect()
        client.loop_stop()
    except:
        print ("No procede desconectar")
    print ("Adios")

El programa es mucho mas grande pero es que son mas de 500 lineas para ponerlo aqui. Lo que quiero conseguir es que ese cuadro sea como una consola donde se vaya escribiendo lo que pasa en el programa.
Muchas gracias
2  Programación / Programación C/C++ / Problema de declaración de funciones externas al fichero cpp en: 21 Marzo 2018, 22:23 pm
Bueno mi problema no es en c++ si no en Arduino pero como el lenguaje que más se parece es a c++ lo pongo aquí haber si me podéis ayudar. El problema recae en que mi nivel de programación no es muy alto y que nunca me han llegado enseñado hacer programas estructurados en diferentes ficheros cpp. Ahora quiero aprender y no encuentro muy bien cómo se hace. El caso que quiero que el ino llame a funciones que están en diferentes .cpp y hasta hay bien pero cuando es un cpp el que llama a otra función declarada en otro cpp me da error que el compilador en ese cpp no lo tiene declarado. el caso como puedo hacer que lo que se declare en el programa principal este donde esté se le pueda llamar desde cualquier parte. Muchas gracias.

Pd: Es decir tengo el ino y hay declaro hago el include a wifi.h y datos.h pero claro desde la parte del codigo del cpp de wifi.h no puedo llamar a funciones de datos.h.
3  Programación / Ingeniería Inversa / Un poco de guia para aprender a crackear un programa c++ en: 10 Agosto 2017, 21:30 pm
Bueno ya consegui crackear cosas en .net. Pero ya cuando encuentro algo en c++ la cosa se me ponen dificil.lograr hacer el resto. No son programas dificiles pienso solo son que no tengo el sufiente conocimiento aun.

Bueno el programa es el siguiente:
TrainController™ Gold Version 8.0
http://www.freiwald.com/pages/download.htm

El caso os cuento lo que hice hasta ahora:
- Descomprimi el ejecutable haber si evitaba instalar cosas en el PC.
Y asi es descomprimido y portable esta la aplicacion.
- Ahora hojeo el programa y esta c++.
- Entiendo que la libreria railres32.dll es los textos y las ventanas emergente.
- Lo abro con Resource hacker y compruebo que la ventana inicial donde pide el serial
31103:1031 y la cadena string que me da cuando inserto el codigo erroneo es
2000:1031 - 31992 "The code hasn't been entered correctly.\nPlease check the code once more, correct the code and try once more."

Es decir llevo poco, ahora ando analizando ollydbg y w32 haber si consigo algo pero creo que no se usarlos muy bien y doy palos de ciego.

Alguna pequeña ayudar para continuar.

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines