# Modifier le contraste de l'écran en AppleScript



## nati boy (4 Septembre 2009)

Bonjour  ,

tout est dans le titre, je cherche à savoir si c'est possible de modifier le contraste de l'écran en AppleScript.
Ce que je voudrais faire c'est un peu comme sur l'iPod Touch quand on prend un screenshot ou comme sur Photo Booth quand on prend une photo.

Voilà, merci d'avance pour votre aide


----------



## ceslinstinct (4 Septembre 2009)

nati boy a dit:


> Bonjour  ,
> 
> tout est dans le titre, je cherche à savoir si c'est possible de modifier le contraste de l'écran en AppleScript.
> Ce que je voudrais faire c'est un peu comme sur l'iPod Touch quand on prend un screenshot ou comme sur Photo Booth quand on prend une photo.
> ...


Bonjour

Tu cherche à passer sur un fond d'écran blanc (pour faire un effet de flash) et revenir à ton fond d'écran?

@+


----------



## nati boy (4 Septembre 2009)

Pas que le fond d'écran mais tout l'écran. Oui, un effet flash afin de bien attirer l'attention.


----------



## ceslinstinct (4 Septembre 2009)

nati boy a dit:


> Pas que le fond d'écran mais tout l'écran. Oui, un effet flash afin de bien attirer l'attention.


Bonsoir

Fait un test avec ce code.


```
-- Remplace DD par le nom du volume de démarrage

tell application "System Events"
	tell current desktop
		set picture to file "DD:Library:Desktop Pictures:Solid Colors:Solid White.png"
		delay 3
		set picture to file "DD:Library:Desktop Pictures:Plants:Grass Blades.jpg"
	end tell
end tell
```

Dit nous si ça te donne une idée pour ta recherche.

@+


----------



## nati boy (4 Septembre 2009)

Merci pour ton bout de code, mais je pense qu'il modifie le fond d'écran or ce n'est pas tellement ce que je voudrai. 
Je l'ai testé mais sans succès, mon fond d'écran ne change pas. J'ai pourtant bien remplacé DD par le nom du volume de démarrage.

Merci en tout cas


----------



## ceslinstinct (4 Septembre 2009)

nati boy a dit:


> Merci pour ton bout de code, mais je pense qu'il modifie le fond d'écran or ce n'est pas tellement ce que je voudrai.
> Je l'ai testé mais sans succès, mon fond d'écran ne change pas. J'ai pourtant bien remplacé DD par le nom du volume de démarrage.
> 
> Merci en tout cas


Commence par nous dire:

Quel Mac?
Quel système?

Regarde si les images sélectionnées existent dans les divers chemins.

Testé avec Léopard 10.5.8 sans aucun problème.

Si je comprend bien tu veut un effet flash sans changer le fond d'écran, alors utilise le plein écran de ton application (si elle accepte).

Maintenant, je reconnaît que j'ai mal compris ta question.

Donc je suis d'aucune aide pour toi, bye. 

@+


----------



## tatouille (5 Septembre 2009)

update j'ai mis tout ce qui suit ici

http://code.google.com/p/le-depotoir/source/browse/#svn/trunk/obj-C/FlashScreen





nati boy a dit:


> Bonjour  ,
> 
> tout est dans le titre, je cherche à savoir si c'est possible de modifier le contraste de l'écran en AppleScript.
> Ce que je voudrais faire c'est un peu comme sur l'iPod Touch quand on prend un screenshot ou comme sur Photo Booth quand on prend une photo.
> ...



une solu full applescript


```
tell application "System Events"
    try
        do shell script "defaults write com.apple.systemsound \"com.apple.sound.beep.flash\" -int 1"
    end try
    beep
end tell
```
si tu veux faire plus evoluer je pense que tu devrais ecrire un simple cocoa command-line tool qui cree une NSWindow fullscreen avec un petit fade puis quitte...

je t'ai ecrit ca on fly tu peux faire un do shell script avec et par example t'amuser a ajouter des options comme jouer un son ou l'alerte systeme a toi d'etre creatif.


```
$ gcc -framework AppKit flashscreen.m -o flashscreen
$ ./flashscreen
```


```
//
//  flashscreen.m
//  Command Utility
//
//  Copyright Cucurbita. All rights reserved.
//

// gcc -framework AppKit flashscreen.m -o flashscreen

#import <AppKit/AppKit.h>

@interface flashscreenWindow : NSWindow {

}

@end

@implementation flashscreenWindow

- (id)initFullScreen 
{
    if ((self = [super initWithContentRect:[[NSScreen mainScreen] frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO])) {
        [self setBackgroundColor: [NSColor whiteColor]];
        [self setLevel:CGShieldingWindowLevel()];
        [self setAlphaValue:0.3];
        [self setOpaque:NO];
        [self setHasShadow:NO];
    }
    return self;
}

@end

@interface flashscreenDelegate: NSObject {
    flashscreenWindow *window;
}

@end

@implementation flashscreenDelegate

- (void)dealloc
{
    if (window) {
        [window release];
    }
    [super dealloc];
}

- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
    window = [[flashscreenWindow alloc] initFullScreen];
    [window makeKeyAndOrderFront:self];
    [NSTimer scheduledTimerWithTimeInterval:0.1
        target:self selector:@selector(terminateFlashScreen:) userInfo:nil repeats:NO];
}

- (void)terminateFlashScreen:(NSTimer *)timer
{
    [timer invalidate];
    [[NSApplication sharedApplication] terminate:self];
}

- (void)applicationWillTerminate:(NSNotification *)aNotification
{
    if (window) {
         [window orderOut:self];
     }
}

@end

int main(int argc, const char **argv)
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    
    [[NSApplication sharedApplication] setDelegate:[flashscreenDelegate new]];
    [[NSApplication sharedApplication] run];
      
      [pool drain];
      
      return 0;
}

/* EOF */
```
variante avec fade pour coller au macos flashscreen effet


```
//
//  flashscreen.m
//  Command Utility
//
//  Copyright Cucurbita. All rights reserved.
//

#import <AppKit/AppKit.h>

@interface flashscreenWindow : NSWindow {

}

@end

@implementation flashscreenWindow

- (id)initFullScreen 
{
    if ((self = [super initWithContentRect:[[NSScreen mainScreen] frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO])) {
        [self setBackgroundColor: [NSColor whiteColor]];
        [self setLevel:CGShieldingWindowLevel()];
        [self setAlphaValue:0.0];
        [self setOpaque:NO];
        [self setHasShadow:NO];
    }
    return self;
}

@end

@interface flashscreenDelegate: NSObject {
    flashscreenWindow *window;
}

@end

@implementation flashscreenDelegate

- (void)dealloc
{
    if (window) {
        [window release];
    }
    [super dealloc];
}

- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
    window = [[flashscreenWindow alloc] initFullScreen];
    [window makeKeyAndOrderFront:self];
    
    float alpha = 0.0;
    int i = 0;
    for (i = 0; i < 3; i++) {
        alpha += 0.1;
        [window setAlphaValue:alpha];
        [NSThread sleepForTimeInterval:0.040];
    }
    
    for (i = 0; i < 3; i++) {
        alpha -= 0.1;
        [window setAlphaValue:alpha];
        [NSThread sleepForTimeInterval:0.040];
    }
    
    [NSTimer scheduledTimerWithTimeInterval:0.1
        target:self selector:@selector(terminateFlashScreen:) userInfo:nil repeats:NO];
}

- (void)terminateFlashScreen:(NSTimer *)timer
{
    [timer invalidate];
    [[NSApplication sharedApplication] terminate:self];
}

- (void)applicationWillTerminate:(NSNotification *)aNotification
{
    if (window) {
         [window orderOut:self];
     }
}

@end

int main(int argc, const char **argv)
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    
    [[NSApplication sharedApplication] setDelegate:[flashscreenDelegate new]];
    [[NSApplication sharedApplication] run];
      
      [pool drain];
      
      return 0;
}

/* EOF */
```


```
tell application "System Events"
    try
        do shell script "/some/where/flashscreen"
    end try
    beep
end tell
```


----------



## nati boy (5 Septembre 2009)

Merci beaucoup pour ton bout de code 
Pour l'instant j'ai essayé la partie full AppleScript, mais je vais me pencher sur le code Cocoa. En tout cas merci beaucoup, c'est ce que je cherchais 

Edit: par contre, ya le bip qui me dérange :-° , je pense que c'est là qu'il faut aller voir du coté de cocoa...


----------

