2010-11-21 2 views
1

Je ne fais pas beaucoup de programmation dans applescript mais j'ai une application personnelle qui est principalement python mais qui génère des applescripts simples et les appelle via un appel système. Applescript est tellement différent des langages que je programme habituellement que je n'arrive pas à comprendre comment je ...Fenêtre d'accès par nom de fichier de document

obtenir l'ordre des fenêtres d'un document dans une application?

Pour faire des appels comme:

set bounds of **first** window to %s 

autrement dit, comment puis-je obtenir "l'ordre de la fenêtre" du document pour une application?

Est-il possible d'interagir avec une fenêtre à travers l'accès au document comme ceci:

to get bounds of first window whose document is "%s" 

(qui ne fonctionne pas) ou dois-je obtenir d'abord et ensuite interagir avec l'ordre de la fenêtre du document cette fenêtre (via sa commande) dans une deuxième ligne?

Toute idée serait géniale. Merci.

Répondre

2

Vous pouvez très bien faire ces deux choses. La première ligne est juste set bounds of window 1 to ..., ou, si vous préférez, set bounds of the first window to ... La seconde dépend de ce que vous voulez exactement faire. Si vous voulez accéder à la première fenêtre dont le nom est quelque chose en particulier, vous pouvez simplement faire get the bounds of window "NAME"; si vous voulez vraiment le nom du document, cependant, vous aurez besoin de faire quelque chose comme

set d to the document "NAME" 
repeat with w in windows 
    if w's document is d then return bounds of w 
end repeat 

Vous devriez être en mesure de le faire the first window whose document is d, mais cela ne fonctionne pas; pour autant que je sache, c'est parce que document est aussi un nom de type. En outre, si window "NAME"/document "NAME" échoue-c'est le genre de chose dont je me souviens parfois ne pas fonctionner, même si elle devrait-vous pouvez utiliser à la place the first window whose name is "NAME" (ou the first document ...). Mais la forme simple fonctionnera presque certainement. De plus, si vous ne faites que générer ces AppleScripts, les appeler et les supprimer, en d'autres termes, si vous prétendez qu'ils sont des fonctions Python, plutôt que de les générer pour une utilisation ultérieure, je recommande vivement en utilisant appscript à la place ,. Je n'ai jamais utilisé en Python, mais en Ruby, et c'est une très bonne façon de gérer tout ce que fait AppleScript tout en utilisant la langue de votre choix. Par exemple, je pense que votre premier exemple deviendra app('Whatever').windows[1].bounds.set((0,0,0,0)), (ou ...windows.first.... si vous préférez) et votre deuxième deviendra app('Whatever').windows['NAME'].bounds.get() ou app('Whatever').windows[its.document.name == 'NAME'].get(), selon si vous avez besoin du nom de la fenêtre ou du nom de la fenêtre. Ceci est non testé, mais capture certainement la saveur de ce que appscript a tendance à ressembler (agréable et concis).

Questions connexes