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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda .bat que copie una palabra o frase al portapapeles
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda .bat que copie una palabra o frase al portapapeles  (Leído 7,560 veces)
mundomadelman

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda .bat que copie una palabra o frase al portapapeles
« en: 2 Octubre 2014, 20:14 pm »

hola necesito un script para que crear un bat que copie una palabra o frase entre sus comillas, es decir, un texto, normalmente pequeño, al portapapeles. es decir, un bat que al ejecutarlo, copie y pegue una palabra al portapapeles o la ventana de escritura activa en la que se encuentre.
 
muchas gracias
 


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ayuda .bat que copie una palabra o frase al portapapeles
« Respuesta #1 en: 2 Octubre 2014, 21:07 pm »

Para copiar texto debes redireccionar la salida de cualquier comando al comando Clip, ejemplo:

Código
  1. Echo Hola Mundo! | Clip.exe

...a lo que se le añade una linea vacia al final.

Para pegar el contenido del portapapeles, tarea que debería ser muy sencilla, pero de hecho es imposible en algo tan simple como Batch, tampoco puedes recurrir a un lenguaje simple como VisualBasicscript ya que tampoco soporta operaciones con el portapapeles (como explican en este post ).

Puedes crear una pequeña utilidad en cualquier lenguaje que soporte el portapapeles, en VB.NET (y en C#) sería tan sencillo como esto:
Código
  1. Dim Text As String = Clipboard.GetText()
  2. Console.WriteLine(Text)
...sin el código intermediaro para realizar llamadas a la API de Windows para localizar la ventana a la que le quieres enviar el texto, eso ya sería mucho trabajo en cualquier lenguaje.

También puedes utilizar aplicaciones de terceros como complementos (comandos externos adicionales) de Batch, como Paste.exe: http://www.c3scripts.com/tutorials/msdos/paste.html
(no lo he testeado ni lo he descargado)

Saludos.


En línea

mundomadelman

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda .bat que copie una palabra o frase al portapapeles
« Respuesta #2 en: 2 Octubre 2014, 21:20 pm »

gracias por la respuesta.

se podria hacer algo que fuese generico ? es decir, que un archivo que se llame hola.bat

o hola.vcb

que la instruccion sea que copie y pegue en el portapapeles o ventana de texto que se seleccione, el nombre del archivo cualquiera que sea ?

gracias
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ayuda .bat que copie una palabra o frase al portapapeles
« Respuesta #3 en: 2 Octubre 2014, 21:42 pm »

No se que entenderás por "ventana de texto", pero realizar lo que propones, a parte de ser algo muy laborioso, elaborarlo de forma genérica parece una tarea imposible, ya que hay que conocer previamente o hallar el nombre de la Class de la ventana de edición y el HWND de dicha ventana (sin eso no haces nada), además, hay que tener en cuenta que muchos controles de edición (textboxes, richtextboxes, etc) pueden tener ventanas hijas donde se encuentra la capa del control editable.


En resumen:

Desarrollar una aplicación en la que simplemente escribiendo el nombre de un proceso o el título de una ventana de un proceso para pasarlo como parámetro no conseguirias nada, ya que faltarían datos (que ya he mencionado),
de todas formas con el nombre del proceso o el título de la ventana puedes hallar la ventana principal y enumerar sus ventanas hijas y el nombre de sus classes para hallar las ventanas de los controles editables, ¿el problema?, que obviamente pueden haber varios controles editables en una sola aplicación así que es practicamente imposible determinar en que ventana quieres pegar el texto a menos que supieras el índice al que corresponderia la ventana a la que quieres pegar el texto.

Poder puedes hacer algo medianamiente decente (de uso genérico hablando), pero por supuesto NO en Batch, NO en VBS, mi sugerencia: C++ o C#/VB.NET.

Aparte, para casos específicos siempre puedes recurrir a Microsoft UI Automation, hay muchas herramientas de este estilo:

Microsoft Inspect
Microsoft UI Accessibility Checker
WinSpy++

Con cualquiera de ellas puedes averiguar el handle, classname, y otra información adicional de cualquier ventana de un programa.





Respecto a lo de copiar en el portapapeles:

ClipCopy.bat
Código
  1. @Echo OFF & Title Clipboard Copy
  2.  
  3. If "%~1" EQU "" (Exit /B 1)
  4.  
  5. Echo %~1| Clip.exe
  6. Exit /B 0

Uso:
Código
  1. ClipCopy.bat "Frase a copiar"

Saludos.
« Última modificación: 2 Octubre 2014, 21:45 pm por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Restar una palabra a una frase enviada por winsock
Programación Visual Basic
Snort 4 2,001 Último mensaje 14 Octubre 2006, 18:54 pm
por Snort
[RESUELTO] Desesperado...{pasar una frase a un array, una palabra por poscion}
Java
|Miguel| 6 9,132 Último mensaje 22 Octubre 2011, 12:23 pm
por |Miguel|
Eliminar una palabra que esta despues de una frase?
.NET (C#, VB.NET, ASP)
<housedir> 2 3,012 Último mensaje 19 Agosto 2013, 03:00 am
por Eleкtro
Batch. Encontrar palabra en frase
Scripting
Stealt 4 4,943 Último mensaje 30 Agosto 2013, 07:29 am
por Eleкtro
Contar cuantas veces aparece una palabra en una frase
Scripting
minikarpin 2 3,456 Último mensaje 16 Marzo 2017, 04:58 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines