C'est un "problème" connu.
Il existe cependant des api, sous Win32, permettant d'afficher des
fenêtres en avant-plan et d'obtenir la liste des fenêtres (peut-être
avec le nom de leur processus).
Je me demande si vous pourriez faire quelque chose avec ça.
Le 8 févr. 07 à 23:00 Soir, frael a écrit:
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
|