Página 1 de 1

programa para dibujar sobre el escritorio.

Publicado: 15 Sep 2010, 23:01
por iamchavo
Hola gente , estoy trabajando en un proyecto para la escuela y queria saber una cosa, que archivos en la parte de ayuda de autoit deberia leer para orientarme en hacer un programa como este

http://www.smoothboard.net/files/animat ... rframe.html

ya que nos gustaria poder crear uno propio ,aunque sea basico , para probar.
La dificultad la veo en que nose que comandos son los que se utilizan para lograr escribir sobre el escritorio o programas.

( Seria una especie de PAINT para el esecritorio)

muchas gracias , saludos :)

Re: programa para dibujar sobre el escritorio.

Publicado: 16 Sep 2010, 08:46
por Ximorro
La url me da error...

¿Por qué quieres dibujar sobre el escritorio? Eso es complicar un poco la cosa, ¿cómo pinchas para hacer una línea si tienes detrás un botón, por ejemplo?

Poderse se puede hacer con GDI+, obteniendo el contexto del escritorio para dibujar sobre él.

Yo creo que para un proyecto para la escuela, si haces un Paint normal ¡ya estará muy bien! También puedes empezar por ahí y después pasar a lo del escritorio.

Yo dibujé sobre el escritorio para el programa del capturador, aunque en la versión final que hay en el foro acabé utilizando otros métodos. Era complicado porque las ventanas se autorepintan para actualizarse y entonces borran tus gráficos, tienes que estar redibujando constantemente.

Otra cosa sería capturar la ventana del escritorio y pintar sobre eso, ya sería pintar sobre un bitmap estático...

Pero sinceramente, todo eso es empezar por el final, debe parecerte muy fácil hacer un Paint normal en una ventana, pero yo empezaría por ahí a ver qué pasa... ;-)

Como digo para dibujar se usa GDI+, buena suerte porque no es fácil de manejar. Busca GDI en el foro y encontrarás algunos enlaces. En el foro inglés hay un tipet que hace maravillas, aquí encontrarás un montón de ejemplos geniales:
http://www.autoitscript.com/forum/index ... opic=87200

En AutoIt además se pueden hacer algunas cosas con el PictureControl creado con GUICtrlCreatePic, échale un vistazo a ver si te sirve (aunque eso no lo podrías trasladar a dibujar en el escritorio).

Re: programa para dibujar sobre el escritorio.

Publicado: 17 Sep 2010, 07:11
por iamchavo
hola ximorro , mira este video es exactmente lo que tenemos que hacer:

[youtube]www.youtube.com/watch?v=YMJzVkCUCmI&fea ... r_embedded[/youtube]

http://www.youtube.com/watch?v=YMJzVkCU ... r_embedded

El proyecto es convertir una imagen proyectada en tactil. ya funciona perfecto, el tema es que estamos utilizando ese software llamado smoothboard que te permite dibujar el escritorio, por ejemplo ,si sos un profesor y estas dando una clase ,podes resaltar palabras o hacer flechas etc.

Teniamos ganas de crear nuestro propio software similar al smootboard , obvio que no debe ser nada facil ,pero es cuestion de intentar.


Aca esta la pagina del proyecto:
por el medio de la pagina hay una imagen animada donde te muestra en pocos segundos como funciona el programa smoothboard.


http://www.smoothboard.net/


un saludo señor :)

Re: programa para dibujar sobre el escritorio.

Publicado: 17 Sep 2010, 09:13
por Ximorro
Ya veo, el caso es que ese programa no usa el ratón para pintar, sino un mando de wii o un lápiz de infrarojos.
Quiero decir que entonces es más fácil porque esos elementos no se van a poner a clicar botones ni mover ventanas mientras dibujas. ¿Vosotros queréis hacerlo con el ratón o con dispositivos de esos?

Para dibujar vais a necesitar GDI, mirad los enlaces que os pongo...
En WinAPI también hay algunas primitivas básicas de dibujo.

Y aquí por ejemplo dibujan en el escritorio, así verás a qué problemas me refiero:
http://www.autoitscript.com/forum/index ... t&p=389594
El ejemplo hace cosas raras, si reactivas su gui deja de dibujar. No lo he analizado pero para ver cómo se dibuja en el escritorio sirve. Pero verás como dibujar sobre botones o elementos de ventana cambiantes o que se redibujan es complicado.

Aquí hay una alternativa interesante, dibuja sobre un formulario "layered" transparente:
http://www.autoitscript.com/forum/index ... t&p=825185

Re: programa para dibujar sobre el escritorio.

Publicado: 18 Sep 2010, 14:54
por Chefito
Jejejeje......aunque parezca increible yo hace mas de 5 años hice un programa en vb6 algo parecido a lo que quereis. Lo malo es que no lo llegé a terminar. Lo llamé pizarra. Era como si utilizase el escritorio como una pizarra. Dibujaba manteniendo pulsado el botón central del ratón.
Pues bien, la técnica que utilizé es casi idéntica a la segunda opción que os da Ximorro. Utilizé una ventana plana (sin ningún elemento) de un color específico. No recuerdo bien si dibujaba directamente sobre el form o le añadí un control picture que ocupaba completamente la ventana con ese color específico también y sin bordes. Con la api SetLayeredWindowAttributes hice transparente ese color (o sea, que no se veía el form), e hice que cuando mantuviese pulsado el botón central del ratón fuese dibujando líneas contínuas, reando un dibujo al mover el puntero.
También puse que siempre estuviese en primer plano (orden Z) con la api SetWindowPos. Para los que no entiendan esto, lo que quiero decir es que siempre estaba por encima de todas las ventanas. Así siempre se veía el dibujo y parecía que estabas escribiendo en una pizarra.

Esta técnica tenía una posibilidad muy buena, y era que podías estar dibujando siempre, y aparte podías interactuar con windows, programas, ventanas, etc sin que nunca se fuese el dibujo. Esta parte del código parece que la he encontrado.

Lo malo es que el programa fue más allá y lo hice más completo....y no lo encuentro :smt022 . Al subir el cursor arriba del todo de la pantalla salía una pequeña barra emergente de arriba con varias opciones, cambiar el grosor del pen, los colores, retroceder en el dibujo, capturar la pantalla, y varias cosas más. Muchas cosas de estas son fáciles de hacer, pero alguna no tanto.

Con esto os dejo una idea de como podeis hacer el proyecto. Por supuesto esas apis las podeis adaptar con el lenguaje AutoIt sin ninguna dificultad :smt002 .

Saludos.

Re: programa para dibujar sobre el escritorio.

Publicado: 21 Sep 2010, 09:28
por Ximorro
Hombre Chefito, de increíble no me parece nada, conociéndote no me extraña que hayas hecho eso y mucho más :smt002 . Veo que eras un experto del VB, ¿sigues en .NET o te has pasado totalmente a AutoIT? ;-)

Yo también recomiendo esa técnica, dibujar directamente sobre el escritorio tiene inconvenientes importantes. Lo que no entiendo es lo que dices que puedes interactuar con las ventanas y además tener el dibujo... ¿pintando a base de hotkeys en vez de con los botones del ratón? De todas maneras cuando pinches sobre el dibujo no podrás pinchar las ventanas de atrás ¿no?. Siempre se pueden poner opciones para mostrar u ocultar la pizarra.

Buena idea lo de sacar un menú al subir el ratón al borde de la pantalla.

Ala chicos ya podéis empezar. :smt006

Re: programa para dibujar sobre el escritorio.

Publicado: 22 Sep 2010, 12:25
por Chefito
Ximorro escribió:Hombre Chefito, de increíble no me parece nada, conociéndote no me extraña que hayas hecho eso y mucho más . Veo que eras un experto del VB, ¿sigues en .NET o te has pasado totalmente a AutoIT?
Hombre, con vb estuve unos cuantos años :smt003 . Digamos que fue el primer lenguaje que empezé a tratar a fondo en un pc (antes vi turbopascal, pero no a fondo). Hice muchas cosas, y algunas muy interesantes.
Por ponerte un ejemplo de un post que se ha comentado hace poco, empecé ha hacer un cliente irc, con el cual podías chatear. Pero me pasa lo de siempre, empiezo algo y, en este caso, cuando hago lo más dificil que es entenderme con el servidor y el protocolo irc, lo dejo :smt005 . A ver si algún día lo implemento en AutoIt, que el tener servidores de chateo puede ser muy util para hacer muchas cosas (en su día tenía muchas ideas en mente :smt002 ). También hice mucha conexión a access. Hice tanto en access en su día que ahora paso.
Con vb.net apenas me he metido. Tengo libros y manuales. Algo he leído, pero apenas he programado.
Ahora me tocará dejar un poco AutoIt a un lado y recordar modula2 (pascal modular), y aprender java!!!! Menuda put.....a :smt005 . Voy a ver si me vuelvo a matricular en la carrera.....y necesito hacer prácticas con esos lenguajes :smt024 .
Ximorro escribió:Lo que no entiendo es lo que dices que puedes interactuar con las ventanas y además tener el dibujo... ¿pintando a base de hotkeys en vez de con los botones del ratón? De todas maneras cuando pinches sobre el dibujo no podrás pinchar las ventanas de atrás ¿no?. Siempre se pueden poner opciones para mostrar u ocultar la pizarra.
Lo que quiero decir con lo de interactuar con las ventanas y tener el dibujo, es que puedes trabajar con el escritorio y todos sus elementos normalmente. Al ser la ventana donde dibujar transparente no afecta a nada.
Y sí, creo recordar que justamente al pinchar en el dibujo no puedes pinchar en ningún sitio (logicamente), ya que es un gráfico que pertenece a otra ventana.

Pues como dice Ximorro, ya no teneis escusa para no intentarlo :smt037

Saludos.