Acceder a portapapeles 2 (Windows)

Started by Arcontus, May 01, 2018, 11:39:13 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Arcontus

¡Hola chicos!
He aprendido a hacer mi primera DLL y quiero compartirla con vosotros. Se trata de una dll para acceder al contenido del portapapeles y copiarlo sobre una string o bien a la inversa, dado una string copiarla al portapapeles.

La librería consta de 2 funciones:

-- str = CLIPBOARD_READ(); --> Devuelve el contenido del portapapeles sobre una string o mensaje de error en el caso de que no tenga contenido o no sea valido (ej: un fichero).
-- CLIPBOARD_WRITE(str);      --> Copia el contenido de una string sobre el portapapeles.

Importante, para el correcto visualizado de los carácteres no standard del español es necesario utilizar una fuente con codificación CP850. La librería se encarga de hacer la conversión "on the fly" de los carácteres no standard del español (acentos, ñ, ¡¿).

Adjunto .dll y un programa de ejemplo para su uso dentro del fichero zip.
Espero que les sea de utilidad,
Un saludo!
PD: DLL con los nombres de función solicitados por la audiencia :)
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

SplinterGU

gracias por compartir! felicitaciones por tu primera dll!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Working on Anarkade. A couch multiplayer 2D shooter.

panreyes

#3
Bien hecho, enhorabuena! :)

Por cierto, lo mejoraría renombrando las funciones a:
CLIPBOARD_WRITE
CLIPBOARD_READ

Como en los DivLike todas las funciones están a la misma altura/orden, suele ser cómodo tener la "razón" de las funciones delante y la acción detrás, aparte de que READ es algo más común de ver.

Drumpi

Yo iría más allá:
CLIPBOARD_GETS
CLIPBOARD_PUTS
Porque lo que lee, al final, son líneas de texto. Yo me guardaría _WRITE y _READ para cuando podamos leer algo más que cadenas ASCII (como una imágen, por ejemplo :P).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Arcontus

Quote from: Drumpi on May 07, 2018, 12:45:10 AM
Yo iría más allá:
CLIPBOARD_GETS
CLIPBOARD_PUTS
Porque lo que lee, al final, son líneas de texto. Yo me guardaría _WRITE y _READ para cuando podamos leer algo más que cadenas ASCII (como una imágen, por ejemplo :P ).
Hombre, por unos Karmas os implemento el cambio de nombres ;D
¿¿GETS Y PUTS o WRITE y READ?? ¿Que preferís?
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

panreyes

Si pones write y read (en vez de gets y puts) te doy 100 de karma xD

JaViS

habria que subir el codigo fuente a un repo publico asi la gente puede colaborar
Working on Anarkade. A couch multiplayer 2D shooter.

Arcontus

Quote from: panreyes on May 09, 2018, 08:31:31 AM
Si pones write y read (en vez de gets y puts) te doy 100 de karma xD
Ves preparando el botón, jajajaja
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Arcontus

Quote from: JaViS on May 09, 2018, 02:12:33 PM
habria que subir el codigo fuente a un repo publico asi la gente puede colaborar
Si, es verdad.

Si no lo he hecho aun es por falta de tiempo y por que realmente me ha costado más configurar el entorno para compilar las DLL que realizar el código de las funciónes xD, y como lo que realmente "necesitas" es la DLL compilada, pues por eso no lo he subido, pero lo haré ;) .  ¿Cuantos de vosotros (a parte de splinter) tienen un entorno para compilar DLL's?

5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Arcontus

#10
Ya está la DLL resubida con los nombres de las funciones cambiados.
Lo de subir el código a un repo GIT lo tengo en tareas pendientes..., estoy evaluando si añado alguna otra funcion a la librería antes de subirla al repo y darle un poco de chapa y pintura a lo que tengo codificado.
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Drumpi

Hacer DLLs es mi asignatura pendiente. Creo que una vez hice la DLL de ejemplo de Fénix con DEV-C++. Hoy tendría que usar Visual Studio o las herramientas de Linux, porque el MINGWloquesea lo tengo configurado en el sobremesa para compilar para GP2X (no sin gran esfuerzo) porque tengo pendiente recompilar alguna versión de Bennu más actualizada que la que hice en su día.

Pero sigo opinando que si solo lee y escribe lineas de texto, seamos constantes y hagamos como los ficheros. WRITE y READ se usa en Linux para leer y escribir "en general", para cualquier fichero (sea de texto, de imágen o un dispositivo) :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Arcontus

5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

CMX

No sabes el tiempo que andaba detrás de esto. Muchas gracias.
Karma

Arcontus

Quote from: CMX on January 16, 2019, 12:02:40 PM
No sabes el tiempo que andaba detrás de esto. Muchas gracias.
Karma
Se agradece :)

Por cierto, sería interesante para el resto de usuarios que crearas un msg y explicaras tu experiencia con el error que te dió.
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com