Como encontrar las coordenadas de pixel en tu pantalla
Necesitas la posicion X/Y exacta de un pixel y la necesitas ahora -- quizas para un script de automatizacion, quizas para alinear un elemento de interfaz, quizas para reportar un bug con pasos de reproduccion precisos. Sea lo que sea que te trajo aqui, esta pagina cubre todos los metodos practicos: herramientas del sistema, comandos de terminal, DevTools del navegador, y un selector en vivo que puedes probar sin instalar nada.
Abrir la herramienta completa de coordenadasDemo rapida: selector de coordenadas
El cuadro de arriba es interactivo. Mueve el raton sobre el y veras cuatro valores actualizarse en tiempo real: X e Y miden desde la esquina superior izquierda de toda tu pantalla, mientras que X relativa e Y relativa miden desde la esquina superior izquierda del propio cuadro de demostracion.
Esta distincion -- coordenadas de pantalla frente a coordenadas relativas al elemento -- es la fuente mas comun de confusion cuando alguien empieza a trabajar con posiciones de pixel. Las coordenadas de pantalla te dicen donde esta algo en el monitor. Las relativas te dicen donde esta dentro de una ventana o elemento concreto.
Consejo practico: Si escribes un script de automatizacion que necesita hacer clic en un boton, casi siempre querras coordenadas de pantalla. Si estas construyendo una aplicacion web, normalmente querras coordenadas relativas (lo que el navegador llama offsetX/offsetY).
Windows: PowerShell y mas
Windows no incluye ninguna herramienta que muestre coordenadas visibles. No hay ninguna aplicacion integrada que siga tu cursor e imprima numeros X/Y. Tienes tres opciones reales.
Opcion 1: PowerShell + API de Win32 (listo para copiar)
Usa la misma funcion GetCursorPos que toda aplicacion de Windows usa internamente, por lo que las coordenadas que obtienes son pixeles fisicos de pantalla. Pega esto en una ventana de PowerShell:
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class User32 {
[StructLayout(LayoutKind.Sequential)]
public struct POINT { public int X; public int Y; }
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out POINT lpPoint);
}
"@
while ($true) {
$p = New-Object User32+POINT
[User32]::GetCursorPos([ref]$p)
Write-Host "`rX: $($p.X) Y: $($p.Y)" -NoNewline
Start-Sleep -Milliseconds 100
}
Mueve el raton y observa los numeros. Pulsa Ctrl+C para detener.
Aviso de escalado DPI: En Windows 10 y 11 con escalado superior al 100%, GetCursorPos devuelve coordenadas en pixeles fisicos. Si tu script hace clic dentro de un navegador, el navegador puede usar pixeles CSS. Esta discrepancia es la causa numero uno de clics de automatizacion que caen en el lugar equivocado.
Opcion 2: Snipping Tool (para lecturas rapidas)
La herramienta de recorte no muestra coordenadas directamente, pero cuando inicias un recorte, la cruceta muestra su posicion de pixel actual en una pequena etiqueta. Pulsa Win + Shift + S para abrirlo.
Opcion 3: Python con PyAutoGUI
Instala con pip install pyautogui y luego:
import pyautogui, time
while True:
x, y = pyautogui.position()
print(f"\rX: {x} Y: {y}", end="", flush=True)
time.sleep(0.1)
Para mas detalle sobre PyAutoGUI, consulta nuestra guia de coordenadas con PyAutoGUI.
macOS: Digital Color Meter y terminal
macOS viene mejor equipada que Windows para esta tarea. Tienes una utilidad integrada que muestra coordenadas en vivo.
Integrado: Digital Color Meter
Abre Spotlight (Cmd + Espacio) y escribe "Digital Color Meter". Esta aplicacion, en Aplicaciones / Utilidades, muestra la posicion del cursor en tiempo real en la parte inferior de su ventana. Es la forma mas rapida de obtener coordenadas en un Mac sin escribir codigo.
Consejo: Redimensiona la ventana del Digital Color Meter para que sea pequena y muevela a una esquina. Asi no bloqueara el area que intentas medir.
Terminal: Python + Quartz
El framework Quartz proporciona los mismos datos de coordenadas que usa el sistema operativo. Ojo: macOS mide Y desde la parte inferior de la pantalla, no desde arriba.
import Quartz, time
while True:
loc = Quartz.CGEventGetLocation(
Quartz.CGEventCreate(None))
h = Quartz.CGDisplayPixelsHigh(
Quartz.CGMainDisplayID())
# Y de macOS es desde abajo; invertir a origen superior-izquierda
print(f"\rX: {int(loc.x)} Y: {int(h - loc.y)}",
end="", flush=True)
time.sleep(0.1)
Instala con pip install pyobjc-framework-Quartz.
Linux: xdotool y xwininfo
Linux tiene las mejores herramientas de linea de comandos para trabajo con coordenadas, en parte porque X11 fue disenado para ser programable desde el principio.
xdotool: lectura unica de coordenadas
Instala con sudo apt install xdotool y luego:
xdotool getmouselocation --shell
# X=1920
# Y=540
# SCREEN=0
# WINDOW=16777216
La opcion --shell formatea la salida como variables de shell:
eval "$(xdotool getmouselocation --shell)"
echo "Raton en $X, $Y pantalla $SCREEN"
Bucle de seguimiento en vivo
while true; do
eval "$(xdotool getmouselocation --shell)"
printf "\rX: %-5s Y: %-5s" "$X" "$Y"
sleep 0.1
done
Usuarios de Wayland: xdotool y xwininfo son herramientas de X11. En una sesion de Wayland pueden devolver ceros o fallar silenciosamente.
En el navegador: DevTools y JavaScript
Si buscas coordenadas dentro de una pagina web, no necesitas herramientas del sistema. El navegador te lo da todo mediante JavaScript.
Snippet para la consola de DevTools
Abre DevTools (F12 o Cmd+Option+I), ve a la pestana Console y pega:
document.addEventListener('mousemove', e => {
console.clear();
console.log('Screen: ' + e.screenX + ', ' + e.screenY);
console.log('Client: ' + e.clientX + ', ' + e.clientY);
console.log('Page: ' + e.pageX + ', ' + e.pageY);
console.log('Offset: ' + e.offsetX + ', ' + e.offsetY);
});
| Propiedad | Origen | Con scroll? | Caso de uso |
|---|---|---|---|
screenX / screenY | Esquina del monitor fisico | No | Deteccion multi-monitor, automatizacion OS |
clientX / clientY | Esquina del viewport del navegador | No | Canvas, posicionamiento de superposicion |
pageX / pageY | Esquina del documento completo | Si | Posicion absoluta del documento con scroll |
offsetX / offsetY | Esquina del elemento bajo el cursor | Si | Interaccion relativa al elemento |
Lo que mas confunde: clientX/Y no cambia al hacer scroll, pero pageX/Y si.
Escalado DPI: por que tus coordenadas fallan
Si alguna vez escribiste un script que funciona en un ordenador pero falla por unos pixeles en otro, el escalado DPI es casi seguro el culpable.
Las pantallas modernas suelen usar un factor de escalado superior al 100%. Una pantalla 4K al 150% reporta menos pixeles logicos que fisicos. El problema: diferentes capas del sistema pueden reportar coordenadas en unidades distintas.
- Las APIs del sistema (como
GetCursorPos) suelen devolver pixeles fisicos - Los navegadores reportan pixeles CSS (logicos)
- Los frameworks de automatizacion como PyAutoGUI intentan coincidir con el OS
Solucion: Comprueba window.devicePixelRatio en la consola del navegador. Si devuelve 1.5, multiplica las coordenadas CSS del navegador por 1.5 para obtener pixeles fisicos. Ve nuestra guia de escalado DPI para mas detalle.
Multiples monitores y coordenadas negativas
En un sistema multi-monitor, la esquina superior izquierda del monitor principal siempre es (0, 0). Los monitores secundarios extienden el plano de coordenadas. Si tu segundo monitor esta a la izquierda del principal, sus coordenadas son negativas.
| Posicion del monitor | Rango de coordenadas | Ejemplo |
|---|---|---|
| Principal (centro) | 0 a +ancho, 0 a +alto | 0,0 a 1920,1080 |
| Izquierda del principal | -ancho a -1 | -1920,0 a -1,1080 |
| Derecha del principal | +principal a +(prin+sec) | 1920,0 a 3840,1080 |
| Encima del principal | -alto a -1 (eje Y) | 0,-1080 a 1920,-1 |
Analisis completo en nuestra guia de coordenadas multi-monitor.
Tabla comparativa de metodos
| Metodo | Plataforma | Precision | Programable? | Ideal para |
|---|---|---|---|---|
| PowerShell + GetCursorPos | Windows | Exacta (px fisico) | Si | Scripts de automatizacion |
| Snipping Tool | Windows | Aproximada | No | Estimacion visual |
| PyAutoGUI | Todas | Exacta | Si | Automatizacion multiplataforma |
| Digital Color Meter | macOS | Exacta | No | Lecturas rapidas |
| Python + Quartz | macOS | Exacta | Si | Scripts de Mac |
| xdotool | Linux (X11) | Exacta | Si | Scripts de shell |
| DevTools Console | Navegador | Exacta (px CSS) | Si | Desarrollo web |
| Selector online (esta pagina) | Navegador | Exacta | No | Lecturas sin instalar nada |
Preguntas frecuentes
Por que mis coordenadas difieren entre dos ordenadores con la misma pantalla?
Casi siempre es el escalado DPI. Dos pantallas 1920x1080 pueden dar coordenadas distintas si una esta al 125% y la otra al 100%. Comprueba window.devicePixelRatio en el navegador.
Puedo obtener coordenadas en un dispositivo tactil?
Si. Los eventos tactil proporcionan touches[0].clientX y touches[0].clientY, que funcionan igual que las coordenadas del raton.
Puedo obtener coordenadas de un elemento concreto en vez del cursor?
Si. En el navegador usa element.getBoundingClientRect(). Para apps de escritorio, las APIs de accesibilidad pueden enumerar elementos sin necesitar coordenadas de pixel.
Cual es la diferencia entre pixeles logicos y fisicos?
Los pixeles fisicos son los puntos reales del hardware. Los logicos (o pixeles CSS) son una abstraccion para pantallas de alta DPI. Al 100% son identicos; al 200%, un pixel logico equivale a un bloque de 2x2 pixeles fisicos. Ve nuestra guia de pixeles fisicos vs logicos.
Hay un atajo de teclado para mostrar coordenadas en Windows?
No existe uno integrado. Lo mas cercano es la cruceta del Snipping Tool (Win + Shift + S). Puedes asignar un atajo al script de PowerShell con AutoHotkey.