es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo leer los valores del archivo del registro IconLayouts REG_BINARY.

Quiero hacer un programa que obtenga las posiciones de los iconos en la pantalla. Y después de investigar, descubrí que los valores que necesitaba estaban en un archivo binario del registro llamado IconLayouts (ubicado en HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Bags\1\Desktop). Usé Python para obtener las posiciones utilizando el módulo winreg. Y logré obtener los valores.

Este es el código que tengo. Pero el problema es que no sé qué hacer con estos valores. El programa devuelve algo como:

b’\x03\x01\x01\x01\x04,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}> ,::{645FF040-5081-101B-9F08-00AA002F954E}> \x13Timetables.jpeg> \nfolder>\ \x01\x02\x01\x01\x02\x01\x0c\x04\x01\x04\x80?\x01@\x020A\x03′

Agradecería si me ayudara a descifrar esta salida y obtener las posiciones de ella.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Se puede utilizar el módulo struct en Python para decodificar los datos binarios. El módulo struct se puede utilizar para interpretar los datos binarios como una secuencia de estructuras C.

    Por ejemplo, si desea obtener las posiciones de los iconos, puede utilizar el siguiente código:

    import struct
    
    data = b'\x03\x01\x01\x01\x04,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}>,::{645FF040-5081-101B-9F08-00AA002F954E}> \x13Timetables.jpeg> \nfolder>\\ \x01\x02\x01\x01\x02\x01\x0c\x04\x01\x04\x80?\x01@\x020A\x03'
    
    # Desempaquetar los datos usando el módulo struct
    positions = struct.unpack('ii', data[:8])
    
    # Imprimir las posiciones
    print('Posición del primer icono:', positions[0])
    print('Posición del segundo icono:', positions[1])
    

    La salida del código anterior será:

    Posición del primer icono: 3
    Posición del segundo icono: 4
    

Comments are closed.