Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - tincopasan

#591
Scripting / Tramposo aporte de python y vbs
11 Julio 2016, 12:54 PM
Muchas veces me pasa que algunos usuarios quieren reproducir los textos hablados en python. Ahora bien, python es multiplataforma etc, pero por suerte para mí, todos mis usuarios usan solo windows y del Seven en adelante(ninguno debugea y quieren los últimos jueguitos así que nadie tiene xp), lo cual dice adiós a multiplataforma, el incoveniente que sigo teniendo es que algunos todavía quieren usar python 2.x(al pedo sino tienen idea, pero lo tienen), por suerte la mayoría usa 3.x (lo cual a veces lleva a inconvenientes entre las versiones de las bibiotecas)asi que para ahorrarme instalarlas decidí usar vbs y SAPI5 (vienen por defecto en windows), para resumir un simple código de como hago trampas para reproducir los textos.Como siempre lo bueno de python que cada uno lo usa como quiere!
Código (python) [Seleccionar]

import os, subprocess
def hablar():
   global archivo
   temporal=os.getenv("temp") #obtengo el path del directorio temp
   nombre="\prueba.vbs"       #nombre del archvo que voy a escribir
   archivo= temporal+nombre   #concateno el path y el nombre
   
   arch=open(archivo,"w")     #para crear el archvo en modo escritura
   obligatorio = 'set speech = Wscript.CreateObject("SAPI.spVoice")'
   
   texto=input("Escriba lo que desea decir: ")
   cmd1= 'speech.speak "{}"'.format(texto)  #le doy formato a la linea a escribir en el archivo
     
   arch.write(obligatorio)
   arch.write("\n"+cmd1)
   arch.close()

hablar()
ejecutar="cscript " + archivo     #declaro todo el comando a usar en cmd
out= subprocess.check_output(ejecutar) #ejecuto el comando
os.remove(archivo)                     #borro el *.vbs



Saludos



Deliberar sobre las versiones de python es como la religión, cada uno cree lo que quiere y no por eso es absoluto.
#592
la pregunta es
¿porqué querés mover a [4AFA46]? qué es una dirección a la que ya apunta el programa
CitarPues bien, cuando intento guardar mi contador con MOV BYTE PTR DS:[4AFA46],AL
si querés guardar Al deberías hacerlo en una dirección libre, como te indico MCKSys
#593
pues el error te lo dice linea 56 erro de indentación: indentacion no esperada! o sea hay espacios donde no debiera.
revisa los espacios porque tenés de más.
Ahora por el número de línea no has puesto todo el código.
#594
¿me estás charlando con lo de command1? y es más que obvio que falta code
Código (vb) [Seleccionar]

Private Sub Click(p As POINTAPI)
'p.X and p.Y in absolute coordinates
'Put the mouse on the point
SetCursorPos p.x, p.y 'esta parte me lleva a (x, Y) pero de la pantalla completa y necesito q tome las coordenadas dentro del picture 1

mouse_event MOUSEEVENTF_ABSOLUTE, p.x, p.y, 0, GetMessageExtraInfo()

mouse_event MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, GetMessageExtraInfo()

mouse_event MOUSEEVENTF_LEFTUP, p.x, p.y, 0, GetMessageExtraInfo()
End Sub


Código (vb) [Seleccionar]

Private Sub Click(p As POINTAPI)
'p.X and p.Y in absolute coordinates
'Put the mouse on the point
if sobre = True then
         SetCursorPos p.posx, p.posy 'esta parte me lleva a (x, Y) pero de la pantalla completa y necesito   tome las coordenadas dentro del picture 1

mouse_event MOUSEEVENTF_ABSOLUTE, p.x, p.y, 0, GetMessageExtraInfo()

mouse_event MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, GetMessageExtraInfo()

mouse_event MOUSEEVENTF_LEFTUP, p.x, p.y, 0, GetMessageExtraInfo()
else
etc. para no repetir
end if
End Sub


#595
me ha pasado varias veces que los script solo devuelven cadenas y no hay intervención del usuario, por ejemplo si realizan algún cálculo,muchas cadenas  o fibonacci, más lo cual me preguntaron si esos resultados se pueden guardar en un archivo de texto. Es más que obvio que se puede, pero...
tendría que modificar cada uno de los script con las sentencias ya recontra conocidas.Con los años además de vago me gusta simplificar sin grandes complicaciones así que...
era usuario de dos en sus inicios y pensé o hago un bat (que odio) o uso otro script(imprime.py) y listo!
código de imprime.py
Código (python) [Seleccionar]

import os
import sys
archivo= sys.argv[1]
os.system('python {} > impreso.txt'.format(archivo))


4 líneas y asunto resuelto para siempre en estos casos.
se usa muy fácil: desde la consola de cmd python imprime.py archivoaimprimir.py
Saludos y perdón por esta huevada pero la quice compartir.

Edito:

lo entiendo pero...
1) si le quiero cambiar el nombre al archivo de salida lo hago en el script
2) de tu forma el usuario tendría que pasar 2 argumentos,el nombre del archivo a crear y el nombre del archivo a guardar la salida- es más rápido  con un solo argumento


Dicho sea de paso, creo no entendiste que imprime llama a cualquier archivo que quiera(siempre que no espere la intervención del usuario) y lo mande a un txt sin realizarle ninguna modificación.
#596
Creo que estás haciendo mucho copy-paste.
1)Intenta creando dos variables globales como POSX y POSY y otra sobre= boolean
2)dentro de la función del picturebox.mousemove asigna a posx = x y posy=y , a sobre true
3)dentro form.mousemove sobre = false
4)ahora dentro de la función click crea unas condiciones:
si sobre = verdadero mostrá posx y posy
sino
mostra x y 
#597
me encantaría entender lo que preguntas.
Citary quisiera saber si en vez de ser por find-window,
puede ser por handrers...
supongo que te referís a handle y FindWindow justamente lo que hace es devolver el handle.

FindWindow function
Retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search.

según: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx
#598
Scripting / Re: [Python] ABM archivo de texto
6 Julio 2016, 03:47 AM
estaría bueno que peter_lyon si sabes un código mejor, lo publiques así todos podemos aprender.
#599
¿y qué tal con base de datos? sql por ejemplo.
#600
bueno, ha pasado mucho tiempo y no han posteado dudas o soluciones, y aunque puedo considerarme un novato (siempre aprendiendo) no voy a dar pistas de solución, pero te diré Flamer que has abusado de xor, lo cual lleva a que aveces no tenga solución real, ya que no hay forma de hacer valores no imprimibles y hasta nulos.Por ejemplo dos caracteres con valores 58 y 57 hasta dos con valores 56. Está bien para ver vbs y como reversear xor, pero... no es la mejor forma de realizarlo.
Saludos.