Hacer ScreenShoot y pasarla al ClipBoard

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

Código: Seleccionar todo

#include <ScreenCapture.au3>

; Capture full screen
_ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Image1.jpg")

ClipPut(....)      ; ni idea si es la función para este caso.

Partiendo de la base del ejemplo de la ayuda de AutoIt, estoy intentando pasarlo al Clipboard, he visto que se pueden pasar Ficheros, pero imágenes... Ni idea y me parece complicado.

A ver si me podéis ayudar.

Gracias,
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por arkcrew »

Hola!

Eso es muy facil.

Simplemente crea una variable que contenga la ruta de la captura , por ejemplo $ruta
y usa la funcion _ClipPutFile

Algo asi

#include <Misc.au3>
$ruta = ....
_clipputfile($ruta)

Saludos!!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por Chefito »

Recuerda que también tienes la librería Clipboard.au3 (udf) para sacar un partido total al clipboard. Son todas las funciones que empiezan por _clipboard_ en la ayuda.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

arkcrew escribió:Hola!

Eso es muy facil.

Simplemente crea una variable que contenga la ruta de la captura , por ejemplo $ruta
y usa la funcion _ClipPutFile

Algo asi

#include <Misc.au3>
$ruta = ....
_clipputfile($ruta)

Saludos!!
Hola,

Gracias por la respuesta, pero aquí he de generar el archivo e indicarle la ruta.

A mi me gustaría que cuando hiciera pegar directamente se me visualizara la foto. Vamos como un print pantalla.
Chefito escribió:Recuerda que también tienes la librería Clipboard.au3 (udf) para sacar un partido total al clipboard. Son todas las funciones que empiezan por _clipboard_ en la ayuda.

Saludos.
La estoy mirando pero no la entiendo.

Saludos y gracias,
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por BasicOs »

Hola
Una vez que tienes la ruta puedes abrirla desde dentro de autoit o bien llamando a la imagen con un run() ejecutando un programa externo q desees utilizar para verlas bien. Un visualizador como el paint irfanview o el mismo internet Explorer.
Busca run en la ayuda xra ver ejemplos
Salu22:)
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

Primero de todo quiero pedir disculpas porque no controlo mucho y creo que me estoy volviendo pesado con la pregunta xD.
BasicOs escribió:Hola
Una vez que tienes la ruta puedes abrirla desde dentro de autoit o bien llamando a la imagen con un run() ejecutando un programa externo q desees utilizar para verlas bien. Un visualizador como el paint irfanview o el mismo internet Explorer.
Busca run en la ayuda xra ver ejemplos
Salu22:)
Yo lo que busco es que al hacer print pantalla y se me guarde en el clipboard como cuando haces screenshoot. Si lo guardo en un fichero ya no me interesa, porque simplemente es que en un momento en concreto se guarde una imagen y luego si la quiero usar apreto control+v en el paint o excel o word donde la necesite vamos.

¿O quizá estoy obligado a guardar la imagen en un fichero?

Código: Seleccionar todo

#include <ScreenCapture.au3>

$picture = _ScreenCapture_Capture() ;me da un valor que pone que es: "returns a handle to an HBITMAP" eing?

Msgbox(0,"",$picture)

clipput($picture) ;al clipboard no quiero pasar el valor sino que quiero pasar la imagen.
Disculpad molestias.
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por BasicOs »

Hola, mira en los parámetros y en los resultados, esta función te guarda la imagen en disco, que puede estar bien para tener un cache o log de las imagenes que vas grabando, más simple.

Si quieres activar un printscreen simplemente send("{PRINTSCREEN}") que hace como si pulsaras las teclas, también hay muchas funciones que hacen cosas diferentes, por ejemplo lo q hacen programas que te capturan trozos de pantalla o dependiendo de las opciones del programa. :smt027 :smt027 También con send() puedes usar ctrl v y ctrl c

Luego con clipget() y clipput() puedes recuperar o llenar la memoria del clipboard.

Igual si publicas un código más completo con el resultado final de lo que haces podemos ver bien cual puede ser la mejor alternativa,

Salu22:)
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

Hola de nuevo,

Código: Seleccionar todo

#include <ScreenCapture.au3>

$picture = _ScreenCapture_Capture() ;me da un valor que pone que es: "returns a handle to an HBITMAP" eing?

Msgbox(0,"",$picture)

clipput($picture) ;al clipboard no quiero pasar el valor sino que quiero pasar la imagen.
Con este código me gustaría que una vez hecho el sript, si quisiera fuera al paint y me copiara el la imagen de la pantalla. Pero sin embargo me copia el HBITMAP osease un string. Como lo podría hacer? Como se guarda en el clipboard una imagen? pero en formato imagen, no formato fichero.

Eso es lo que busco, quizá ya me habéis dado la respuesta y como soy tan tarugo no la he visto.

Gracias y gracias tm por la paciencia.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por Chefito »

BasicOs ya te ha dicho como hacerlo:
BasicOs escribió:Si quieres activar un printscreen simplemente send("{PRINTSCREEN}") que hace como si pulsaras las teclas
O sea, que este código:

Código: Seleccionar todo

send("{PRINTSCREEN}")
envía una pulsación de la tecla imprimir pantalla, la cual captura la pantalla completa y la almacena en el portapapeles.

Saludos y más atento a los post :smt002 .
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

Chefito escribió:BasicOs ya te ha dicho como hacerlo:
BasicOs escribió:Si quieres activar un printscreen simplemente send("{PRINTSCREEN}") que hace como si pulsaras las teclas
O sea, que este código:

Código: Seleccionar todo

send("{PRINTSCREEN}")
envía una pulsación de la tecla imprimir pantalla, la cual captura la pantalla completa y la almacena en el portapapeles.

Saludos y más atento a los post :smt002 .
No es lo que busco.

Busco que me copie al clipboard la imagen. No quiero simular que aprieto printscreen. El motivo es que en realidad no busco la imagen completa busco un trozo. Pero insisto solo me gustaría saber como copiar una imagen al clipboard pero que cuando apriete control + v si estoy en el paint me pegue la imagen.

Sé poco de AutoIt, pero no tan poco hombre xD.

Un saludo,
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por joana »

:smt021

Lo he intentado, parecía fácil pero el ClipPut veo que no sirve, manejando la librería Clipboard me imagino que se puede hacer, pero no sé hacerlo.
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por arkcrew »

Buenas,

Que ganas de darle vueltas al tema, con mi primer.mensaje copias la imagen al clipboard. Pruebalo y veras. Luego solo tienes que abrir el paint con un Run o un ShellExecute y lanzar un Ctrl + V y te pegara la imagen que se copio al clipboard.
Asunto zanjado :)

Saludos!!
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

arkcrew escribió:Buenas,

Que ganas de darle vueltas al tema, con mi primer.mensaje copias la imagen al clipboard. Pruebalo y veras. Luego solo tienes que abrir el paint con un Run o un ShellExecute y lanzar un Ctrl + V y te pegara la imagen que se copio al clipboard.
Asunto zanjado :)

Saludos!!
Previamente he probado lo que me dijiste y sirve, para tener en el clipboard archivos.

Código: Seleccionar todo

#include <Clipboard.au3>
#include <ScreenCapture.au3>
#include <Misc.au3>

$ruta = "ruta file de la imagen"

_clipPutFile($ruta)
Pero esto me supone crear un archivo con la imagen y luego indicarle la ruta al clipboard.

Y a mi no me deja copiar al Paint o al excel después.

Yo lo que quiero es poner al clipboard una imagen que se pueda visualizar poniendo control + v abriendo programas como paint, excel...

Estoy seguro que soy yo que me explico mal, pero de todas maneras me facilitaría mucho si pusierais el código.

En el script no quiero poner como se abre el paint ni nada. Solo quiero el como copiar al portapapeles la imagen hecha con el ScreenCapture y a poder ser sin generar el fichero.

Voy a poner un chiste para quitar hierro al asunto que tiene que ver con esto.

Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por Chefito »

MMMmmmmm no te creas que aun lo tengo muy claro lo que quieres exactamente :smt005 . Que necesitas capturar? un trozo de la pantalla? un trozo de una ventana? una ventana entera? un control de una ventana? Piensa que con imprimir pantalla más algunas combinaciones de teclas puedes capturar una cosa u otra. Por que no te vale pulsar teclas?
Pon un ejemplo específico de lo que quieres capturar y lo entenderemos mejor.

Mira este programa hecho por el compañero Ximorro. Está muy bien y puedes capturar todo tipo de cosas. Analiza el código y utiliza lo que necesites.

http://www.emesn.com/autoitforum/viewto ... f=5&t=1848

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

Chefito escribió:MMMmmmmm no te creas que aun lo tengo muy claro lo que quieres exactamente :smt005 . Que necesitas capturar? un trozo de la pantalla? un trozo de una ventana? una ventana entera? un control de una ventana? Piensa que con imprimir pantalla más algunas combinaciones de teclas puedes capturar una cosa u otra. Por que no te vale pulsar teclas?
Pon un ejemplo específico de lo que quieres capturar y lo entenderemos mejor.

Mira este programa hecho por el compañero Ximorro. Está muy bien y puedes capturar todo tipo de cosas. Analiza el código y utiliza lo que necesites.

http://www.emesn.com/autoitforum/viewto ... f=5&t=1848

Saludos.
Quiero dos madalenas :smt003

Estoy mirando el capturador es la lecheeee!!! Simplemente quiero como en una opción del capturador que se pueda enviar la imagen al portapapeles, pero sin generar el archivo.

Estoy buscando las funciones que lo hagan, pero me hago la piel buscando.

Si lo encuentro posteo, después del por culo que he dado es lo mínimo. :smt040

Llebo un ratito y ni tu idea... :smt017
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por arkcrew »

Buenas


Yo sigo con dudas axerca de que se pueda copiar algo al portapapeles sin que exista como archivo en el disco duro.
Me baso es que cuando copiar un archivo y lo borras o mueves del origen windows tira error...

Porque te duele tanto generar el archivo? Generalo en temporales y luego borralo o algo asi.

Saludos!!
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

La opción de ponerlo en un archivo temporal tm me gusta, pero menos. Es más a lo mejor es así como funciona el printscreen.

De todas formas tampoco he sabido hacer para que se me muestre la imagen con control+v usando "_ClipPutFile()". Creo que soy un negao :smt015

Muchas gracias por ser tan paciente xD
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por arkcrew »

Buenas,

Puedes postear el codigo porfa?

Lo segundo,una vez abras paint usa un Send o la funcion ControlSend que seria mas eficaz ya que puedes especificar el titulo de la ventana y ahi lanzar el control.


Saludos!
rgracia
Mensajes: 18
Registrado: 28 Jun 2012, 09:06

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por rgracia »

Código: Seleccionar todo

#include <Clipboard.au3>
#include <ScreenCapture.au3>
#include <Misc.au3>

_ScreenCapture_Capture("pepe.png")

$ruta1 = @ScriptDir & "\pepe.png"

_clipPutFile($ruta1)
Este código super sencillo es utilizando un fichero cosa que no me gusta :smt022 .

Pero cuando hago control+v me genera el fichero, pero lo que busco es cuando abra el paint o el excel (fuera del script), me muestre la foto al apretar control+v.

:smt005 Veo que no va a salir lo de copiar imagen al clipboard :smt022
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Hacer ScreenShoot y pasarla al ClipBoard

Mensaje por arkcrew »

Hola,

Ese.codigo copia la imagen pero si bien cierto es que ni te deja pegarla al paint.

Revisa esto que me da a mi que te va a solucionar el problema ;)

Lee bien!

http://www.autoitscript.com/forum/topic ... clipboard/

Saludos!
Responder