Scripts
Crea y ejecuta scripts de PixPin para capturas y pins. Aprende sintaxis JavaScript, parámetros de API, constantes, diferencias de sistema y diagnóstico.
Los scripts de PixPin usan JavaScript para capturar, anclar y operar ventanas. Guarda pasos repetidos como acción y ejecútala con atajo, menú o línea de comandos. Scripts es un capítulo del manual; el editor está en Configuración → Atajos/Acciones.
- Capturar la ventana activaCaptura y copia en una acción.
- Área de captura fijaReutiliza posición y tamaño.
- Abrir un grupo de referenciasPasa una lista de archivos para anclar en lote.
Cuándo usar scripts
| Necesidad | Ayuda del script |
|---|---|
| Capturar siempre la misma zona | Fijar posición y tamaño o crear una zona de tamaño dado alrededor del puntero |
| Reducir clics en las herramientas | Copiar, anclar, guardar o reconocer tras seleccionar |
| Evitar la selección manual repetida | Capturar ventana activa, pantalla bajo el puntero o última zona |
| Abrir cada día las mismas referencias | Crear varios pins a partir de un array de rutas |
| Conectar otras herramientas | Ejecutar texto o un archivo .js mediante comandos |
Para cambiar teclas, menú o exclusiones basta Atajos/acciones. Los scripts sirven para combinar operaciones o especificar parámetros.
Crear y ejecutar el primer script
Abre Configuración → Atajos/Acciones, pulsa Agregar nueva acción y escoge un Preajuste cercano, como Captura de pantalla y... → Captura de pantalla y anclar.
Pon un nombre único y revisa o edita Script. Esta línea captura y ancla cuando confirmas la selección.
pixpin.screenShot(ShotAction.Pin);Pulsa Probar script, completa una captura real y revisa el resultado. Los fallos muestran un error.
Pulsa Aplicar y asigna el atajo en la lista. También puedes marcar Menú de la bandeja y usar ese acceso.
La prueba ejecuta realmente. Otro preajuste sobrescribe el contenido y cancelar no revierte lo probado. Los scripts integrados no se editan; crea una acción personalizada para una variante.
Ejecutar desde comandos
Pon el texto tras -r y la ruta tras -f. Si PixPin está abierto, recibe la instancia existente; al arrancar espera a la inicialización.
Windows PowerShell: sustituye la ruta por tu instalación:
& 'D:/Apps/PixPin/PixPin.exe' -r 'pixpin.screenShot(ShotAction.Copy);'
& 'D:/Apps/PixPin/PixPin.exe' -f 'D:/Scripts/capture.js'Terminal macOS: se supone instalado en Aplicaciones:
"/Applications/PixPin.app/Contents/MacOS/PixPin" -r 'pixpin.screenShot(ShotAction.Copy);'
"/Applications/PixPin.app/Contents/MacOS/PixPin" -f '/Users/yourname/Scripts/capture.js'El archivo solo contiene JavaScript, sin delimitadores Markdown. Con chino se recomienda UTF-8 con BOM. Para scripts largos, -f reduce problemas con comillas, barras inversas y $. Mantén comillas alrededor de rutas con espacios.
El retorno del comando no implica fin de captura, reconocimiento o guardado. Tampoco devuelve la última expresión como resultado estructurado. La automatización de macOS no abre por sí sola la guía de permisos para captura interactiva; concede antes grabación de pantalla y accesibilidad dentro de la aplicación.
Sintaxis y ejecución
El campo acepta JavaScript. API y constantes distinguen mayúsculas: usa pixpin.screenShot, no pixpin.screenshot.
| Categoría | Formas comunes admitidas |
|---|---|
| Variables y datos | var, let, const; números, cadenas, booleanos, arrays, objetos y null |
| Condiciones y bucles | if / else, switch, for, while, for...of, break |
| Funciones y clases | function, funciones flecha, parámetros, return, class; no uses return directamente fuera de una función |
| Expresiones | Aritmética, comparación, &&, ||, !, ternarios, plantillas, desestructuración y ?? |
| Datos | Objetos integrados Array, String, Math, Date, JSON, Map, Set |
| Excepciones | try / catch / finally, throw new Error(...) |
El entorno actual no admite ?. ni async/await, ni import / export en scripts normales. Usa if para comprobar valores nulos y las API PixPin para operaciones por etapas.
No incluye window, document, fetch del navegador, require, process, fs de Node.js ni setTimeout. No pegues ejemplos dependientes de web, Node.js o paquetes externos. Admitir objetos no permite sustituir el rectángulo de una API por un objeto corriente.
Ejecución secuencial sin esperar la selección
Las instrucciones se ejecutan en orden, pero abrir captura solo la inicia y no espera tu selección. Para capturar y anclar usa pixpin.screenShot(ShotAction.Pin), no dos líneas de captura y anclado del portapapeles.
- Ejecutar tras seleccionarscreenShot: selecciona y después copia o ancla.
- Área definida, captura inmediatadirectScreenShot: usa un área conocida sin selección manual.
El motor se reutiliza. Usa variables temporales dentro de funciones para evitar interferencias entre ejecuciones. Los ejemplos multilínea usan una función autoejecutable:
(function () {
var width = 640;
var height = 480;
var rect = pixpin.genRectUnderCursor(width, height);
pixpin.directScreenShot(rect, ShotAction.Copy);
})();El () final la ejecuta. Un bucle infinito de espera bloquea el hilo de interfaz. console.log(...) genera registros, pero el editor no tiene consola interactiva.
Objetos globales, parámetros y retornos
| Nombre: | Uso |
|---|---|
pixpin | Llamar a API de captura, pins, retardo, ventanas y comandos |
ShotAction | Elegir qué hacer tras la captura, como ShotAction.Copy |
PixConst | Elegir zonas especiales, como PixConst.SpRectActiveWindow |
Introduce números, booleanos y cadenas directamente y listas de archivos como arrays de cadenas. Se recomiendan rutas absolutas: D:/Images/example.png o, escapando barras, D:\\Images\\example.png.
Genera los rectángulos con estas tres API y pásalos sin modificar:
| Llamada | Significado |
|---|---|
pixpin.genRect(x, y, width, height) | Especificar posición y tamaño en pantalla |
pixpin.genRectUnderCursor(width, height) | Crear una zona centrada en el puntero y ajustar su posición a la pantalla |
pixpin.getSpRect(type) | Leer una zona especial; type usa una constante PixConst |
Son coordenadas lógicas, con ancho y alto positivos. Puede haber valores negativos en varias pantallas. Si falta espacio, genRectUnderCursor reduce proporcionalmente. La escala de pantalla y los ajustes de guardado también afectan a los píxeles exportados. No pases {x: 100, y: 100, width: 640, height: 480}: esos campos no crean el rectángulo requerido.
true suele indicar aceptación, no fin de la interacción. Consulta los retornos en las tablas. Una API sin retorno no permite comprobar el éxito del guardado.
Ejemplos adaptables
Capturar y copiar la ventana activa
Pon la aplicación objetivo delante y activa el atajo global. Captura al instante sin selección manual.
pixpin.directScreenShotSpRect(
PixConst.SpRectActiveWindow,
ShotAction.Copy
);Con Probar script, la ventana activa puede ser la de configuración. Aplica la acción y pruébala desde la aplicación objetivo.
Fijar la selección y ajustarla
Inicia una captura normal y fija (100, 100) y 640 × 480. Puedes seguir anotando o ajustando en la barra.
(function () {
if (pixpin.screenShotAndEdit()) {
pixpin.setScreenShotRect(100, 100, 640, 480);
pixpin.setScreenShotRectRadius(4 / 3);
}
})();setScreenShotRectRadius configura la relación de aspecto, no las esquinas. Borra la última línea si no quieres fijarla.
Captura directa con nombre temporal
Captura la pantalla del puntero. Cambia antes la carpeta; en macOS usa, por ejemplo, /Users/yourname/Pictures/....
(function () {
var rect = pixpin.getSpRect(PixConst.SpRectScreenUnderMouse);
pixpin.directScreenShotAndSaveTo(
rect,
"D:/Captures/PixPin_$yyyy-MM-dd_HH-mm-ss$.png"
);
})();El guardado expande las variables de fecha; consulta Variables de ruta y nombre. Añade números a nombres duplicados sin notificación. No devuelve ruta final ni indicador de éxito.
Anclar varias referencias
Sustituye las rutas del array por archivos existentes y añade entradas con el mismo formato.
(function () {
var files = [
"D:/Reference/layout.png",
"D:/Reference/colors.png"
];
if (!pixpin.pinFromFiles(files)) {
throw new Error("没有找到可贴出的文件,请检查路径。");
}
})();Ignora archivos ausentes; un array vacío o sin rutas existentes devuelve false. true indica entrega al sistema de pins, no que todo formato se vea como imagen.
Esperar tres segundos y capturar
La forma más sencilla con cuenta atrás cancelable:
pixpin.delayScreenShotWithTips(3);Para posición y tamaño usa esta API. Orden: segundos, especificar posición, x, y, especificar tamaño, ancho, alto, parámetro reservado y proporción.
pixpin.delayScreenShot(3, true, 100, 100, true, 640, 480, 0, 4 / 3);Alternar el estado con la misma acción
Invierte el estado de desactivación: suspende los otros atajos activos y púlsalo de nuevo para restaurarlos.
pixpin.disableShortcuts(!pixpin.isDisableShortcuts());La tecla de esta acción puede revertir esa suspensión explícita, pero sigue sujeta a exclusiones y juegos a pantalla completa de Windows.
Referencia de API personalizadas
Operaciones para scripts normales. rect procede de una API de rectángulos y action usa ShotAction. Los corchetes indican parámetros opcionales y no se escriben en el código.
Captura y zonas
| API | Parámetros y uso |
|---|---|
screenShot(action) | Seleccionar y ejecutar action al confirmar. Devuelve booleano; puede ser false con otra captura abierta, captura larga en uso o permisos insuficientes |
screenShotAndEdit() | Equivale a screenShot(ShotAction.Edit) y muestra las herramientas tras seleccionar |
screenShotAndCopy() | Equivale a screenShot(ShotAction.Copy) |
screenShotAndPin() | Equivale a screenShot(ShotAction.Pin) |
screenShotAndCopyOcr() | Equivale a screenShot(ShotAction.CopyOcrText); reconoce y copia texto |
openCustomScreenShot() | Abrir captura personalizada/con retardo para configurar parámetros |
setScreenShotRect(x, y, width, height) | Fijar zona en una captura existente, preferiblemente tras screenShotAndEdit() correcto; false sin ventana |
setScreenShotRectRadius(ratio) | Fijar proporción rectangular como 16 / 9, no esquinas; no se aplica a selecciones por trazado |
switchScreenshotMode() | Cambiar al modo siguiente con captura visible; false si no hay ventana disponible |
directScreenShot(rect, action) | Capturar zona conocida y ejecutar acción, sin retorno; apto para copiar, anclar y guardar |
directScreenShotSpRect(type, action) | Capturar zona PixConst, como getSpRect(type) seguido de captura directa |
directScreenShotAndSaveTo(rect, filePath) | Capturar a ruta completa, con variables y sufijos numéricos por duplicado; sin retorno |
La tabla omite pixpin.; escribe, por ejemplo, pixpin.screenShotAndCopy(). La captura directa con Edit, ImageEdit, LongShot o GifShot no abre el editor o grabador correspondiente. Usa screenShot(action) o API específicas.
Retardo, captura larga y grabación
| API | Parámetros y uso |
|---|---|
delayScreenShot(seconds, hasPos, x, y, hasSize, width, height, radius, ratio) | Abrir edición tras un retardo mínimo de 0,2 segundos; una nueva llamada sustituye la pendiente del mismo tipo. true confirma el temporizador |
delayScreenShotWithTips(seconds[, rect]) | Mostrar cuenta atrás cancelable, segundos enteros y mínimo 1; pasar zona o seleccionarla después. Sin retorno |
longScreenShot(rect) | Abrir captura larga o cambiar el área de la existente |
openLongScreenShot(x, y, width, height) | Fijar su zona con cuatro números sin crear antes un rectángulo |
gifScreenShot(rect) | Abrir o ajustar grabación. El nombre mantiene GIF, pero la interfaz decide el formato final |
openGifScreenShot(x, y, width, height) | Fijar zona de grabación con cuatro números |
gifShotPause() | Alternar pausa/continuación; false sin ventana de grabación |
hasLongShotWidget() | Indicar si existe una ventana de captura larga |
delayScreenShot usa el rectángulo si hasPos y hasSize son true; si solo hasSize es true, crea el tamaño alrededor del puntero, y sin tamaño se selecciona a mano. radius no se usa: pon 0. Un ratio positivo fija la proporción; si no, -1.
Estas API abren o controlan ventanas; no indican fin del desplazamiento ni exportación de vídeo. Continúa en cada interfaz.
Pins y gestión por lotes
| API | Parámetros y uso |
|---|---|
pinFromClipBoard() | Crear pin del portapapeles; durante captura normal o larga intenta anclar el resultado actual. El retorno no determina el éxito del pin del portapapeles |
pinFromFiles(files) | files es un array de rutas y procesa archivos existentes. false si está vacío o no hay archivos |
pinSelectedFile() | Anclar la selección del gestor; false si no hay selección o falla la lectura. En macOS interviene automatización |
restoreLastClosedPin() | Recuperar según las reglas vigentes y devolver el éxito |
closeAllPin() | Cerrar los pins actuales mediante el proceso normal |
hideOrShowAllPin() / isAllPinHide() | Alternar visibilidad total / consultar si todos están ocultos |
hideOrShowPinsExceptSelected() | Ocultar los no seleccionados y restaurar al repetir; sin selección intenta el pin activo y, si no hay, pide seleccionar |
switchPinGroup() | Cambiar grupo de pins |
trigMousePenetration() | Alternar clic a través bajo el puntero o desactivarlo en todos si no está sobre un pin |
setAllPinToRoiMode() / unsetAllPinToRoiMode() | Pasar a miniatura / restaurar vista normal; ROI no crea aquí un pin de ventana |
saveAllPinImageTo(folder) | Guardar imágenes exportables en carpeta con números y sufijos por duplicado; el argumento es carpeta, no nombre completo |
saveAllPinImageWithDialog() | Elegir carpeta y guardar por lotes |
destoryAllPin() | Destruir todos los pins según la confirmación actual, sin recuperación ordinaria. Se escribe destory, no destroy |
Comandos y otras operaciones
| API | Parámetros y uso |
|---|---|
translateClipboard() | Traducir el portapapeles e indicar si se inició |
disableShortcuts(disabled) / isDisableShortcuts() | true suspende y false restaura otros atajos / consultar esa suspensión, no exclusiones ni estado de juego |
moveCursorBy(dx, dy) | Desplazar el puntero para ajustar; llamadas rápidas aceleran, por lo que el total no equivale necesariamente a la suma |
toggleWindowTopmostUnderMouse() | Alternar ventana siempre visible bajo el puntero. Windows admite otras aplicaciones; macOS solo PixPin |
openConfigurationWindow() / openDoc() | Abrir configuración / manual |
runSystem(command) | Iniciar programa externo y volver al instante, sin retorno; la cadena contiene programa y argumentos |
runSystemSync(command) | Iniciar y esperar; code, output, error son el código de salida del proceso, la salida estándar y el error estándar |
quit() | Salir de PixPin |
runSystem y runSystemSync ejecutan directamente sin intérprete automático. Las tuberías, redirecciones y órdenes internas no funcionan solas; especifica el intérprete del sistema si lo necesitas. La cadena no puede estar vacía.
La calculadora puede abrirse con pixpin.runSystem("calc") en Windows o pixpin.runSystem("/usr/bin/open -a Calculator") en macOS. El ejemplo consulta el resultado síncrono; usa un programa existente.
(function () {
var result = pixpin.runSystemSync("cmd /c ver"); // Windows 示例
console.log(result.code, result.output, result.error);
})();La espera síncrona bloquea temporalmente la interfaz. El límite actual ronda 30 segundos, sin campo de tiempo agotado, y code no prueba un inicio correcto. Usa runSystem para volver al instante.
Constantes de área y acción
PixConst: dónde capturar
| Constante | Área |
|---|---|
PixConst.SpRectScreenUnderMouse | Monitor bajo el puntero |
PixConst.SpRectAllScreen | Rectángulo de todas las pantallas |
PixConst.SpRectWindowUnderMouse | Ventana bajo el puntero |
PixConst.SpRectActiveWindow | Ventana activa |
PixConst.SpRectLastShotRect | Última selección; completa antes una captura válida |
Depende de ventanas, puntero e historial al ejecutar. Sin ventana o historial válido no supongas que habrá una zona utilizable.
ShotAction: después de seleccionar
Añade ShotAction., como ShotAction.QuickSave.
| Constante | Acción |
|---|---|
Edit | Seguir anotando y operando en la barra de captura |
Copy / Pin | Copiar imagen / anclar |
Save / QuickSave | Abrir guardado / usar guardado rápido |
CopyOcrText | Reconocer y copiar texto |
Translate | Traducir la captura |
OcrTable / OcrDocument | Reconocimiento de tablas / documentos |
LatexRecognition | Reconocimiento de fórmulas |
LongShot / GifShot | Abrir captura larga / grabación |
WinRoi | Crear pin de ventana, solo Windows |
Print | Imprimir |
CopyQRCodeText | Reconocer y copiar el contenido QR |
AirDrop | AirDrop, solo macOS |
ImageEdit | Abrir editor de imagen separado |
Close | Cerrar esta captura |
Las constantes eligen funciones sin cambiar sus condiciones. Copiar, guardar y reconocer siguen sujetos a ajustes y ventanas interactivas.
Diagnóstico
| Síntoma | Comprobación |
|---|---|
SyntaxError | Revisa comillas, paréntesis y comas, quita delimitadores Markdown y evita ?., async/await o import |
ReferenceError | Revisa declaración de variables, mayúsculas y ámbito |
| Método ausente o llamada sin efecto | Revisa nombres; genera rectángulos con API y archivos con arrays |
| Se capturó la configuración | Estaba delante durante Probar script; aplica y prueba desde la aplicación objetivo |
| Captura iniciada sin imagen final | screenShot(...) requiere selección; usa directScreenShot... para captura directa |
| Sin aviso de guardado | directScreenShotAndSaveTo no avisa; revisa ruta, extensión y carpeta |
| El atajo no activa el script | Revisa registro, desactivación y exclusiones; consulta Estado del atajo |
| Captura macOS por comandos sin respuesta | Autoriza grabación y accesibilidad en PixPin y desbloquea el sistema |
try / catch captura errores, pero false y ausencia de retorno no generan excepciones automáticamente. Prueba una operación y añade después parámetros y combinaciones. La ausencia de errores no prueba que todo haya terminado.
Artículos relacionados
Atajos integrados
Consulta las teclas de ocho pestañas, cambia o borra asignaciones, resuelve conflictos y comprueba las diferencias entre Windows y macOS.
Ratón
Personaliza los gestos de ratón en los pins: zoom, opacidad, copia, miniaturas y selección múltiple, con valores iniciales y resolución de conflictos.