Quiero escribir un shell script que copie el contenido del portapapeles (sólo texto plano) cuando el contenido anterior cambie. Cuando lanzo el script cada vez que copio algo (por lo que el contenido del portapapeles cambia) el script copia los nuevos valores en un archivo.
He escrito un script que funciona correctamente:
#!/bin/bash
prev=" "
while true
do
curr=$(pbpaste)
if [ "$curr" != "$prev" ]
then
echo -n " " >> /Users/davide/desktop/file
echo -n $curr >> /Users/davide/desktop/file
fi
done
No me gusta mucho esta solución. Debe haber otras formas de resolver este problema.
1) Obtener el contenido del portapapeles, almacenarlo en una variable y comparar este valor con el valor actual del portapapeles (mi solución.)
2) Detectar la tecla pulsada CMD+C . Cuando el usuario pulsa CMD+C (atajo de teclado para copiar algo en el portapapeles) casi seguro que el contenido del portapapeles cambia, pero no sé si es posible detectar la pulsación sin instalar librerías adicionales.
3) Ver el proceso.
¿Se puede monitorizar el uso de cpu o mem del proceso pboard (cuando se copia algo en el portapapeles el valor de este porcentaje cambia)?
¿O (no sé si es posible) puedo ver el espacio de direcciones del proceso?
Así que mi pregunta es esto:
En tu opinión, ¿hay alguna alternativa mejor al script que he escrito, teniendo en cuenta las alternativas 2 y 3?
0 votos
Esto parece una buena prueba de concepto para que el malware busque contraseñas en el portapapeles. Supongo que esto será aplastado tarde o temprano y tendrás que obtener un derecho para husmear en los cambios del portapapeles. Veremos lo que sale de la WWDC en el frente de la privacidad - tal vez esto será posible todavía por un tiempo
0 votos
Con respecto a su opción 2, por favor leer esto para obtener algunas ideas. También, leer este post
0 votos
¿Cómo vas a "vigilar" los cambios en el portapapeles? Para ello, necesitas algo más que un script.
0 votos
Hay un registrador de pulsaciones de código abierto para Macs que tendrá algo de código para empezar.