# [AppleScript] Application apparait en premier plan



## kollyv (27 Août 2007)

Bonjour,

J'utilise des applescripts pour contrôler iTunes depuis une application en objective-c. Je fais des requête toute les 3 secondes sur iTunes et à chaque fois que j'exécute le script, iTunes sors du doc et apparait au premier plan ce qui rend inutilisable le mac.


```
NSString * scriptDbEvent = @"try\n"
                "with timeout of 1 second\n"
    "  tell application \"iTunes\"\n"
    "          get count of every track of playlist 1 \n"
    "  end tell\n"
    "end timeout\n end try\n";
KKNSAppleScript * asDbEvent = [[KKNSAppleScript alloc] initWithSource: scriptDbEvent]; 
returnAS = [asDbEvent executeOnMainThreadReturningError:&errors];
```


Il faudrait pouvoir le laisser réduis dans le dock.

Qqu peut m'aider?

Merci d'avance


----------



## Eul Mulot (27 Août 2007)

Ca serait faisable via un autre Thread ? J'ai un peu le même soucis avec un timer, qui me fait refresh ma GUI sans que je lui demande, j'ai de suite penser à lancer un thread parallele en tâche de fond, mais je n'ai pas encore essayé.

Si quelqu'un de compétent peut infirmer/confirmer.


----------



## cirdan (27 Août 2007)

tu as essay&#233;      

tell process "iTunes" au lieu de tell application "iTunes"?

Logiquement &#231;a devrait garder ton iTunes r&#233;duit dans le dock puisque tu parle au processus dans la m&#233;moire et non &#224; l'interface de l'application.

Bonne chance


----------



## kollyv (28 Août 2007)

Pour être honnête je me suis trompé bêtement. Le tell application ne met pas l'application au premier plan.
Je recoit des informations d'une télécommande. En voulant faire un test pour pouvoir démarrer iTunes lors de n'importe quel réception, je le force au premier plan s'il est déjà lancé:


```
[[NSWorkspace sharedWorkspace] launchApplication:@"iTunes.app"];
```

Par contre, un aure soucis. Le tell application lance l'application si elle n'est pas démarré apparemment. J'ai un thread qui tourne relativement vite pour détecter la fin d'une chanson (enfin vite ca ca, toute les 0.2 secondes). Si l'utilisateur étein itunes, iTunes redémarre automatiquement :/ et malgrès le test dans l'applescript


```
KKNSAppleScript * asPP = [[KKNSAppleScript alloc] initWithSource: @"tell application \"System Events\"\n "
    "if exists process \"iTunes\" then\n"
    //  "try\n"
    "  tell application \"iTunes\"\n"
    "      if player state is playing or player state is paused then\n"
    "          get player position \n"
    "      end if\n"
    "  end tell\n"
                "end timeout\n" 
    //"end try\n"    
    "end if \n"            
    "end tell\n"];
```

J'ai laissé un peu le projet de coté, mais je vais faire le test avec un tell process

Merci


----------



## tatouille (30 Août 2007)

http://developer.apple.com/document...ts/dispatch_aes_aepg/chapter_4_section_1.html

arreter avec vos timers qui bouffent du cpu
il y a deja des loop d'events ...


----------

