[EDIT: Mes excuses pour donner essentiellement une réponse AppleScript à votre question ExtendScript. Je regardais juste les questions AS et j'ai oublié que je suis allé à une section différente. Je peux seulement espérer que vous êtes sur un Mac. Sinon, je suppose que je vais juste manger mes downvotes et pleurer.]
Il existe une solution de contournement. L'avantage de cela (et une partie de la nature de contournement de celui-ci) est qu'il fonctionne dans toutes les applications. L'inconvénient est qu'il nécessite python (qui devrait être sur votre Mac de toute façon - assez facile à installer sinon), et deux morceaux de logiciels tiers (tous deux gratuits), "checkModifierKeys" et "cliclick". J'ai utilisé un script qui apparaît dans mon menu de script depuis des années. La partie python est décrite ici: http://thechrisgreen.blogspot.com/2013/04/python-script-for-getting-pixel-color.html Ce script peut être sauvegardé, rendu exécutable et appelé à l'aide de la commande AS do shell script
. et le reste, pour sélectionner un point sur l'écran et attendre que la touche de contrôle soit enfoncée (c'est comme ça que ça fonctionne) est assez simple. La partie de checkModifierKeys de base (qui attend jusqu'à ce que la touche Ctrl est enfoncée) est:
set controlIsDown to false
repeat until (controlIsDown)
set initialCheck to ((do shell script "/usr/local/bin/checkModifierKeys control"))
if initialCheck = "1" then set controlIsDown to true
end repeat
La partie cliclick (qui obtient les coordonnées) est:
set xyGrabbed to do shell script "/usr/local/bin/cliclick p"
Il peut sembler un long chemin à allez-y, mais ça fonctionne très bien. Ma version convertit la valeur rgb en hexadécimal avec ce gestionnaire, ce qui est utile pour mes besoins:
to makeHex(theNumber) --was anInteger
--Converts an unsigned integer to a two-digit hexadecimal value
set theResult to ""
repeat with theIndex from 1 to 0 by -1
set theBase to (16^theIndex) as integer
if theNumber is greater than or equal to theBase then
set theMultiplier to ((theNumber - (theNumber mod theBase))/theBase) as integer
set theResult to theResult & item theMultiplier of ¬
{1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F"}
set theNumber to (theNumber - theBase * theMultiplier)
else
set theResult to (theResult & "0")
end if
end repeat
theResult
end makeHex
Pas besoin d'excuses: d'autres peuvent avoir la même question et * fonctionnent * sur un Mac. – usr2564301
Merci pour votre solution! J'adore mac, et je n'aurai jamais un autre type d'ordinateur :) – bearacuda13
Eh bien, c'est un peu "plateformeiste", mais je vous pardonne :-) Je suis content que vous ayez trouvé cela utile! – CRGreen