[PYTHON] 2 dudas

Iniciado por sunicomi, 11 Septiembre 2012, 14:18 PM

0 Miembros y 2 Visitantes están viendo este tema.

sunicomi

Buenas, estoy haciendo un programa en python cuya interfaz es la cmd de Windows. Este programa me da un texto que yo quiero que se pueda seleccionar en la cmd para copiarlo y pegarlo en otra parte. Como hago para que se habilite la opción de seleccionar texto en la cmd?

y Otra pregunta: Como se hace en Python para añadir un programa al registro de forma que se inicie cada vez que se encienda el PC.

Gracias de antemano!


Eleкtro

#1
Cita de: sunicomi en 11 Septiembre 2012, 14:18 PMComo se hace en Python para añadir un programa al registro de forma que se inicie cada vez que se encienda el PC.

Código (python) [Seleccionar]
from _winreg import *
keyVal = r'Software\Microsoft\Windows\CurrentVersion\Run'
key = CreateKey(HKEY_CURRENT_USER, keyVal)
SetValueEx(key, "MI PROGRAMA", 0, REG_SZ, "C:\carpeta\miprograma.exe")
CloseKey(key)


--> Winreg




Cita de: sunicomi en 11 Septiembre 2012, 14:18 PMComo hago para que se habilite la opción de seleccionar texto en la cmd?

Te lo doy en forma de registro, Así practicas  :P
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"QuickEdit"=dword:00000001


PD: Los cambios del modo "edición rápida" no tienen efecto hasta que abres una nueva instancia de la CMD.

EDITO: Aunque también podrías mandar el texto directamente al portapapeles, así no hay necesidad de copiar el texto manualmente...

En Batch:
Código (dos) [Seleccionar]

@Echo OFF
Echo elhacker.net | Clip
REM ctrl + V
exit


En Python (bajo Windows):
win32clipboard del paquete pywin32
http://sourceforge.net/projects/pywin32/

Saludos








sunicomi

#2
Muchas gracias, es justo lo que estaba buscando. ahora lo pruebo todo.

EDITO: Lo único que no entiendo es el porque de la r delante de 'Software\Microsoft\Windows\CurrentVersion\Run'

Para que sirve esa r?

Eleкtro

#3
Cita de: sunicomi en 11 Septiembre 2012, 18:47 PM
Lo único que no entiendo es el porque de la r delante de 'Software\Microsoft\Windows\CurrentVersion\Run'

Para que sirve esa r?

No tiene nada que ver con winreg, Sirve para indicar que la cadena se manipule como si fuese una expresión regular

Para el ejemplo que te puse no es necesario usarlo, pero imaginate esta situación:
Código (python) [Seleccionar]

from _winreg import *

keyVal = 'Software\Microsoft\Windows\CurrentVersion\n'
# La "\n" no se reconocería porque se entiende como un salto de linea en python.
# Entonces tendrías que escapar el slash así:
keyVal = 'Software\Microsoft\Windows\CurrentVersion\\n'
# En cambio al manipularlo como expresión regular, la "\n" se reconoce sin necesidad de añadir otro slash... útil para agilizar las cosas un poco más y evitar errores en este caso:
keyVal = r'Software\Microsoft\Windows\CurrentVersion\n'
# Aunque por supuesto esta no es la finalidad total del uso de las expresiones regulares.

key = CreateKey(HKEY_CURRENT_USER, keyVal)
SetValueEx(key, "MI PROGRAMA", 0, REG_SZ, "C:\carpeta\miprograma.exe")
CloseKey(key)


info: http://docs.python.org/library/re.html

EDITO: Otro ejemplo más claro:
Código (python) [Seleccionar]
print "hola\nhola"
print r"adios\nadios"
raw_input()



Saludos.