Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Script para seleccionar el párrafo donde está localizado el cursor.

Hola.

tell application "System Events"
    set theName to name of the first process whose frontmost is true
end tell

tell application "System Events"
    tell process theName
        delay 0.2
        click
        click
        click
    end tell
end tell

Objetivo: Seleccionar el párrafo en el que está localizado el cursor.

No conozco ninguna combinación de teclas que haga la función de seleccionar un párrafo.
En los comandos de voz predefinidos para el ratón existe “hacer triple clic” que, aplicada sobre un texto, selecciona el párrafo en el que se encuentra la posición del cursor.

El script de la parte de arriba pretende simular “hacer triple clic”, pero no hay buenos resultados.

¿Alguna idea?

Agradezco cualquier ayuda.

P.S.:

tell application "System Events"
    set theName to name of the first process whose frontmost is true
end tell

tell application "System Events"
    tell process theName
        key code 126 using {option down, shift down}
        delay 0.2
        key code 123
        delay 0.2
        key code 125 using {option down, shift down}
        end tell
end tell

Este otro código cumple la función perseguida en archivos de texto.

Sin embargo es totalmente ineficaz en una página web.

2 Respuestas

0voto

DJUNQUERA Puntos2400

Otra versión que también funciona correctamente.
Aportada por Fredrik71

El tiempo de espera (delay 3) solo sirve para poder recolocar el cursor del ratón en otro párrafo una vez ejecutado el script

El argumento indica el número de clics deseado (en este caso, 3) (repeat clickRepeatTimes times)

use framework "Foundation"
use framework "Quartz"
use scripting additions

delay 3

clickAtPosition(3)

on clickAtPosition(clickRepeatTimes)
   set {width, height} to item 2 of (current application's NSScreen's mainScreen())'s frame()
   tell current application's NSEvent to set thePosition to |mouseLocation|()
   repeat clickRepeatTimes times
       current application's CGPostMouseEvent({thePosition's x, height - (thePosition's y)}, true, 1, true)
       current application's CGPostMouseEvent({thePosition's x, height - (thePosition's y)}, true, 1, not true)
   end repeat
end clickAtPosition

1voto

DJUNQUERA Puntos2400

--Quiero compartir una solución a esa cuestión
--Aportada por KniazidisR

use AppleScript version "2.4" --max version macOS 10.12
use scripting additions
use framework "Foundation"
use framework "ApplicationServices"
use framework "Quartz"
use framework "AppKit"
property updateMouseCursorPosition : true
property buttonCount : 1 -- left mouse button number
property mouseButtonDown : true -- mouse button pressed?

-- CONSEGUIR LA POSICIÓN DEL CURSOR EN LA PANTALLA

set aPoint to getCurrentMousePosition() 

-- HACER CLICK IZQUIERDO Y MOVER EL CURSOR A LA NUEVA POSICIÓN

mouseLeftClick at aPoint 
mouseLeftClick at aPoint -- hacer click izquierdo y mover el cursor a la nueva posición
mouseLeftClick at aPoint -- hacer click izquierdo y mover el cursor a la nueva posición

on getCurrentMousePosition()
    -- Obtener la resolución de la pantalla y el extremo inferior (lista de 4 enteros)
    tell application "Finder" to set screen_resolution to bounds of window of desktop

    set theBottom to item 4 of screen_resolution --punto más inferior del eje y
    -- Getting current mouse position {0,0} is top left corner of screen
    set currentMousePosition to (current application's NSEvent's (mouseLocation)) as record
    --NSEvent's : objeto que contiene información sobre una acción de entrada, como un clic del mouse o la presión de una tecla
    -- https://developer.apple.com/documentation/appkit/nsevent

    set x to currentMousePosition's x as integer
    set y to theBottom - (currentMousePosition's y) as integer
    return {x, y}
end getCurrentMousePosition

--EJECUTAR CLIC IZQUIERDO EN UN PUNTO

on mouseLeftClick at aPoint
    current application's CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, mouseButtonDown)
    current application's CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
    --CGPostMouseEvent:
    --https://developer.apple.com/documentation/coregraphics/1541785-cgpostmouseevent
end mouseLeftClick

1voto

Peter comentado

Gracias por compartir la solución!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...