Je veux écrire un code pour redimensionner une fenêtre en fixant ses limites, et je dois prendre en compte l'endroit où le dock est positionné et la taille du dock. Je peux obtenir la position du dock et sa taille, mais le problème est que la taille que j'obtiens n'est pas sous une forme immédiatement utilisable. Par exemple, lorsque je fais :
tell application "System Events"
tell dock preferences
properties
end tell
end tell
Je reçois
{show indicators:true, minimize into application:false, autohide:false, magnification size:1.0, class:dock preferences object, dock size:0.428571432829, autohide menu bar:false, double click behavior:zoom, magnification:false, show recents:true, minimize effect:genie, screen edge:left, animate:true}
Comment puis-je traduire la taille du dock de 0,428571432829 en 100, par exemple, afin de pouvoir placer une fenêtre (dans une résolution de 1024x768) en position x=100, y=0, h=768, w=924
?
Avis x
a commencé après le quai, et le w
est moins la largeur du quai.
0 votes
Je ne m'inquiéterais pas des choses marquées comme dépréciées dans AppleScript - cela ne signifie pas grand-chose, en général, bien que
bounds
serait le meilleur à utiliser carframe
n'a pas été universellement mis en œuvre en premier lieu plutôt que la dépréciation n'est pas en cause. Mais il n'en reste pas moins que l'on peut s'attendre à ce que lesbounds
n'est applicable qu'aux applications scriptables. Pour les applications non scriptables (c'est-à-dire la plupart des applications), vous devrez manipuler l'élémentwindow
par le biais d'événements système, et ce, en utilisant la fonctionsize
yposition
propriétés communes à toutes les sous-classes deUI element
les objets de la classe. Dommage que le dock soit si pénible.0 votes
Oh, et puisque vous accéderez de toute façon aux événements du système, vous aimeriez peut-être savoir que les dimensions de l'écran peuvent être obtenues de la manière suivante :
tell app id "com.apple.systemevents" to tell process "Finder" to set [screenW, screenH] to the size of scroll area 1
qui, dans votre cas, renverra[1024, 768]
. Ainsi, si vous changez de résolution à un moment donné, votre script n'aura pas besoin d'être réécrit.0 votes
Merci pour le conseil, @CJK. Je crois ce que vous dites à propos de la dépréciation dans AS. J'ai écrit une petite bibliothèque pour m'aider à positionner Windows, et j'ai appris à quel point nous devrions positionner différemment Terminal, Console, et dieu sait quelle est la troisième application (toutes Apple first-party).