Apres pas mal d'essais (merci pour les idées !) je suis revenu à
Lappli.Launch de REALbasic (à partir d'une autre appli bien sûr), qui
n'a pas de time out, et qui passe Lappli devant très convenablement
En plus ca marche aussi sur Win, pas que sur Mac
Le seul défaut sur Win c'est qu'il relance Lappli à chaque fois même
si elle est déjà lancée, ca fait plein d'instances... il faut donc
penser à les quitter dès que leur boulot est fini
Marc
--------------------------------------------------------
Le 6 févr. 07 à 13:09, Arnaud Nicolet a écrit :
Vous avez raison: utiliser un "Declare" est bien mieux qu'un
AppleEvent (ou AppleScript, c'est au fond pareil).
Le 6 févr. 07 à 07:14 Matin, Baptiste Laget a écrit:
Bonjour,
Il existe une solution en passant par Carbon,
http://kevin.sb.org/articles/2003/11/11/realbasic-global-hotkey-
example
C'est au départ un script pour utiliser des touches de commande,
mais il inclut un petit bout de code qui ramène l'application au
premier plan. La méthode est SendAppToFront. N'oubliez pas de
remplacer CarbonLib par Cabon :-)
Baptiste
Le 5 févr. 07 à 23:55, Arnaud Nicolet a écrit :
Bonjour,
je ne suis pas sûr de la raison du blocage, mais avez-vous le
même problème en utilisant l'équivalent, en AppleEvent:
dim ae As AppleEvent
ae=NewAppleEvent("misc","actv","") 'Laisser vide le 3ème
paramètre pour que l'application ciblée soit elle-même
ae.Timeout=5 'L'événement n'étant pas complexe, on peut
imaginer qu'au bout de 5 secondes, le délai est dépassé (on ne
voudrait pas bloquer l'application pour 2 minutes, juste pour
l'activation).
if not ae.Send then
end
Quand à Win32, désolé, je ne connais pas...
Le 5 févr. 07 à 16:35 Soir, frael a écrit:
Bonjour
J'ai une appli graphique qui dort tranquillement au fond du Mac
ou du PC (elle est lancée)
Tout d'un coup elle veut passer au premier plan, pour une raison
qui lui est propre: comment faire ?
- sur Mac j'ai essayé d'appeler un script genre
on run {Lapp}
tell application Lapp
activate
end tell
end run
ça marche mais ca se bloque souvent ... un certain temps (de qqs
secondes à qqs minutes, je ne sais pas pourquoi)
- sur Win j'ai essayé avec SetForegroundWindow des Windows
Utilities, mais ca ne fait rien
Dic si qqn avait une idée ce serait super !
Marc
|