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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Código-PyQT4]Protector de Archivo - JaAViEr
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Código-PyQT4]Protector de Archivo - JaAViEr  (Leído 1,678 veces)
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
[Código-PyQT4]Protector de Archivo - JaAViEr
« en: 26 Abril 2014, 05:55 am »

Hola, buenos días!

El siguiente programa tiene por función el poder restaurar un archivo que se ha modificado o eliminado.

El funcionamiento del programa es muy sencillo



Clic en "Buscar..." , ubicamos el archivo que deseamos proteger y damos clic en "Abrir" , una vez hecho esto el programa ya estará atento a los cambios del programa. El programa lanzará un alerta en caso de que:
  • El archivo se haya eliminado.
  • El archivo se haya modificado.
Junto con cualquiera de ambas alertas el programa nos dará la posibilidad de restaurar a la versión anterior (A la versión del archivo al momento de ejecutarse este programa y seleccionar el archivo)
Sin más que decir, el código
Código
  1. # -*- coding: utf-8 -*-
  2.  
  3. #Autor: JaAViEr | 0X5D
  4. #Twitter: @javieresteban__
  5.  
  6. from PyQt4 import QtCore, QtGui
  7. import sys, threading, os
  8.  
  9. try:
  10.    _fromUtf8 = QtCore.QString.fromUtf8
  11. except AttributeError:
  12.    def _fromUtf8(s):
  13. return s
  14.  
  15. class Formulario(QtGui.QWidget):
  16.  
  17. def __init__(self):
  18.  
  19. QtGui.QWidget.__init__(self)
  20. self.setWindowTitle("Protector de Archivos :: 2014")
  21. self.setFixedSize(400, 48)
  22. self.gridLayout = QtGui.QGridLayout(self)
  23. self.label = QtGui.QLabel(self)
  24. self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
  25. self.archivo = QtGui.QLineEdit(self)
  26. self.archivo.setDisabled(True)
  27. self.gridLayout.addWidget(self.archivo, 0, 1, 1, 1)
  28. self.boton = QtGui.QPushButton(self)
  29. self.gridLayout.addWidget(self.boton, 0, 2, 1, 1)
  30. self.label.setText("Archivo:")
  31. self.boton.setText("Buscar...")
  32. self.connect(self.boton, QtCore.SIGNAL("clicked()"), self.buscar_archivo)
  33. self.connect(self.archivo, QtCore.SIGNAL("returnPressed()"), self.empezar)
  34.  
  35. def buscar_archivo(self):
  36.  
  37. self.file = QtGui.QFileDialog.getOpenFileName(self, 'Buscar Archivo', '')
  38. leer = open(self.file, "rb")
  39. self.lineas = leer.read()
  40. leer.close()
  41. self.archivo.setText(self.file)
  42. self.size = os.path.getsize(self.file)
  43. self.empezar()
  44.  
  45. def empezar(self):
  46.  
  47. h = Hilo()
  48. h.start()
  49.  
  50. class Hilo(threading.Thread):
  51.  
  52. def run(self):
  53.  
  54. while True:
  55. try:
  56. open(form.file)
  57. estado = True
  58. except:
  59. estado = False
  60.  
  61. if estado:
  62. tama = os.path.getsize(form.file)
  63. if tama == form.size:
  64. pass
  65. else:
  66. self.restaurar()
  67. else:
  68. self.restaurar()
  69.  
  70. def restaurar(self):
  71.  
  72. try:
  73. f = open(form.file, "wb")
  74. f.write(form.lineas)
  75. f.close()
  76. QtGui.QMessageBox.about(None, 'Alerta',_fromUtf8('El archivo se restauró exitosamente!'))
  77. except:
  78. QtGui.QMessageBox.about(None, 'Alerta',_fromUtf8('Error al intentar restaurar!'))
  79. app = QtGui.QApplication(sys.argv)
  80. form = Formulario()
  81. form.show()
  82. app.exec_()
  83.  

Saludos, Javier.


« Última modificación: 26 Abril 2014, 06:26 am por 0x5d » En línea

BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
Re: [Código-PyQT4]Protector de Archivo - JaAViEr
« Respuesta #1 en: 26 Abril 2014, 20:36 pm »

buen code , parece que volviste a programar javier.


En línea

0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: [Código-PyQT4]Protector de Archivo - JaAViEr
« Respuesta #2 en: 27 Abril 2014, 06:42 am »

buen code , parece que volviste a programar javier.
Estoy intentando retomar el ritmo de PyQT4 :) , hace mucho no programaba Python :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Código-PyQT4]Calculadora - JaAViEr
Scripting
0x5d 3 4,005 Último mensaje 7 Julio 2011, 22:21 pm
por elhacker_carlos
[Código-PyQT4]All in one - JaAViEr(0x5d)
Scripting
0x5d 0 2,004 Último mensaje 11 Febrero 2012, 05:11 am
por 0x5d
[Código-Python]Código Ofuscado nº2 JaAViEr|0x5d [Actualizado]
Scripting
0x5d 6 5,422 Último mensaje 7 Mayo 2013, 23:52 pm
por CodeSource
[Código-PyQT4] IconFinder - JaAViEr | 0x5d
Scripting
0x5d 0 3,462 Último mensaje 31 Octubre 2013, 12:01 pm
por 0x5d
[Código-PyQT4] Manejo de Stock sencillo V1 - JaAViEr
Scripting
0x5d 1 1,629 Último mensaje 4 Mayo 2014, 15:32 pm
por Intrus0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines