PixPin
Configuración

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.
Guarda las operaciones repetidas en un script y asígnalo a un atajo o al menú de la bandeja. El contenido ilustrado es ficticio.

Cuándo usar scripts

NecesidadAyuda del script
Capturar siempre la misma zonaFijar posición y tamaño o crear una zona de tamaño dado alrededor del puntero
Reducir clics en las herramientasCopiar, anclar, guardar o reconocer tras seleccionar
Evitar la selección manual repetidaCapturar ventana activa, pantalla bajo el puntero o última zona
Abrir cada día las mismas referenciasCrear varios pins a partir de un array de rutas
Conectar otras herramientasEjecutar 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

El preajuste rellena nombre y script, representado aquí con líneas. Marca la entrada del menú, aplica y vuelve a la lista para definir el atajo.

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íaFormas comunes admitidas
Variables y datosvar, let, const; números, cadenas, booleanos, arrays, objetos y null
Condiciones y buclesif / else, switch, for, while, for...of, break
Funciones y clasesfunction, funciones flecha, parámetros, return, class; no uses return directamente fuera de una función
ExpresionesAritmética, comparación, &&, ||, !, ternarios, plantillas, desestructuración y ??
DatosObjetos integrados Array, String, Math, Date, JSON, Map, Set
Excepcionestry / 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.
Ambas copian imágenes, pero en momentos distintos. El marco discontinuo solo indica el área del script y no aparece al ejecutarlo.

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
pixpinLlamar a API de captura, pins, retardo, ventanas y comandos
ShotActionElegir qué hacer tras la captura, como ShotAction.Copy
PixConstElegir 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:

LlamadaSignificado
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

APIPará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

APIPará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

APIPará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

APIPará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.SpRectScreenUnderMouseMonitor bajo el puntero
PixConst.SpRectAllScreenRectángulo de todas las pantallas
PixConst.SpRectWindowUnderMouseVentana bajo el puntero
PixConst.SpRectActiveWindowVentana 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.

ConstanteAcción
EditSeguir anotando y operando en la barra de captura
Copy / PinCopiar imagen / anclar
Save / QuickSaveAbrir guardado / usar guardado rápido
CopyOcrTextReconocer y copiar texto
TranslateTraducir la captura
OcrTable / OcrDocumentReconocimiento de tablas / documentos
LatexRecognitionReconocimiento de fórmulas
LongShot / GifShotAbrir captura larga / grabación
WinRoiCrear pin de ventana, solo Windows
PrintImprimir
CopyQRCodeTextReconocer y copiar el contenido QR
AirDropAirDrop, solo macOS
ImageEditAbrir editor de imagen separado
CloseCerrar esta captura

Las constantes eligen funciones sin cambiar sus condiciones. Copiar, guardar y reconocer siguen sujetos a ajustes y ventanas interactivas.

Diagnóstico

SíntomaComprobación
SyntaxErrorRevisa comillas, paréntesis y comas, quita delimitadores Markdown y evita ?., async/await o import
ReferenceErrorRevisa declaración de variables, mayúsculas y ámbito
Método ausente o llamada sin efectoRevisa nombres; genera rectángulos con API y archivos con arrays
Se capturó la configuraciónEstaba delante durante Probar script; aplica y prueba desde la aplicación objetivo
Captura iniciada sin imagen finalscreenShot(...) requiere selección; usa directScreenShot... para captura directa
Sin aviso de guardadodirectScreenShotAndSaveTo no avisa; revisa ruta, extensión y carpeta
El atajo no activa el scriptRevisa registro, desactivación y exclusiones; consulta Estado del atajo
Captura macOS por comandos sin respuestaAutoriza 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.

En esta página