PhotoBooth – Le software (3/4)

Je pense que vous avez compris que le coeur du PhotoBooth était animé par un PC ! Je vais essayer de décrire le plus précisément possible la partie software.

Le système d’exploitation retenu est Windows 7 Pro 64 car j’étais en possession d’une licence ! J’aurais pu également utiliser Windows XP Pro mais pour avoir testé le concept avant, il s’est avéré que la gestion de la webcam est catastrophique et engendre de nombreux drop frame.

En l’absence de lecteur de DVD, l’installation de Windows 7 a été réalisé via une clé USB.

NOTE : Microsoft met à disposition une application pour créer une clé USB bootable pour installer Windows 7 : http://www.microsoft.com/en-us/download/windows-usb-dvd-download-tool

Les drivers ont été installés. Le package logiciel de la webcam a été installé car il permet d’apporter des corrections visuelles auxquelles on n’accède pas depuis les paramètres systèmes.

L’application de PhotoBooth que j’ai retenu est celle de l’éditeur SPARKBOOTH.

Cette application est une des moins chères du marché (55$) et le développement semble bien suivi. Le seule bémol qu’on pourrait lui reprocher est qu’il est vorace en ressources ! Il est nécessaire d’avoir 4 Go de RAM et un Core 2 Duo au minimum pour un fonctionnement fluide et stable.

Cette application a le mérite de pouvoir être totalement personnalisable en fonction de l’événement.

Une fois le système d’exploitation, les drivers et l’application installés…la machine est devenu opérationnelle mais non paramétrée ni optimisée !
Parmi le paramétrage souhaité dans mon cahier des charges initial, il y avait la nécessité de faire disparaître Windows et la machine doit démarrer directement sur l’application !

Pour ce faire, 2 solutions sont possibles : taper dans la base de registres de windows  ou utiliser un logiciel dédié : Install Sheller !
A votre avis…j’ai pris lequel ?…

instantshellerInstant Sheller a un gros avantage : pouvoir restaurer le paramétrage initial en cas de dysfonctionnement. Et puis je connais bien ce logiciel pour l’avoir utilisé sur d’autres projets.

Dans les grandes lignes, ce logiciel permet de :

  • spécifier l’application à utiliser en tant que SHELL et à la place de EXPLORER.
  • Personnaliser les logos de boot
  • Cacher les différents écrans de démarrage et d’arrêt.
  • Supprimer les animations et les sons.

A l’issue de l’application des paramètres, SPARKBOOTH est devenu le SHELL.

Note : il est préférable d’effectuer toutes les optimisations système avant d’utiliser Instant Sheller car EXPLORER n’est plus chargé et il est impossible d’accéder au Panneau de Configuration ou aux unités locales. Seule solution : CTRL+ALT+SUPP, ‘nouvelle tache’ et spécfier ‘explorer.exe’.

La première optimisation du système a consisté à alléger le système d’exploitation en désinstallant tous les composants inutiles :

Panneau de Configuration > Ajout & Suppression de Programmes > Ajouter ou Supprimer des composants Windows > Désinstallation 

Accessoires et Jeux
Service de fichiers et Impression Réseau
Message Queuing
MSN Explorer
Outils de gestion et analyse
Outlook Express
Service d’indexation
Service de télécopie
Service IIS
Windows Messenger

Ensuite, je me suis occupé des Services Windows. En effet, certains services Windows sont lancés de façon automatique même s’ils ne sont pas utilisés ou essentiels au fonctionnent du système. J’ai donc commuté certains de services en mode MANUEL ou DESACTIVE.

Attention : les manipulations suivantes sont dangereuses et peuvent affecter la stabilité du système d’exploitation.

Démarrer > Executer > Services.msc

ServicesMSCserviceONOFF

Accès à distance au Registre : Désactivé
Acquisition d’image Windows (WIA) : Désactivé
Administration IIS : Désactivé
Affichage des messages : Désactivé
Aide et support : Désactivé
Assistance TCP/IP NetBIOS : Désactivé
Avertissement : Désactivé
Carte à puce : Désactivé
Carte de performance WMI : Désactivé
Client de suivi de lien distribué : Désactivé
Compatibilité avec le Changement rapide d’utilisateur : Désactivé
Configuration automatique sans fil : Désactivé
Connexion secondaire : Désactivé
DDE réseau : Désactivé
Distributed Transaction Coordinator : Désactivé
DSDM DDE réseau : Désactivé
Fax : Désactivé
Fournisseur de la prise en charge de sécurité LM NT : Désactivé
Gestion d’applications : Manuel
Gestionnaire de l’Album : Désactivé
Gestionnaire de session d’aide sur le Bureau à distance : Désactivé
Gestionnaire de téléchargement : Désactivé
Horloge Windows : Désactivé
Hôte de périphérique universel Plug-and-Play : Désactivé
Journaux et alertes de performance : Désactivé
Mises à jour automatiques : Désactivé
Onduleur : Désactiver
Ouverture de session réseau : Désactivé
Partage de Bureau à distance NetMeeting : Désactivé
Prise en charge des cartes à puces : Désactivé
Publication FTP : Désactivé
Publication World Wide Web : Désactivé
QoS RSVP : Désactivé
Service de découvertes SSDP : Désactivé
Service de la passerelle de la couche Application : Désactivé
Service de numéro de série du lecteur multimédia portable : Désactivé
Service de rapport d’erreurs : Désactivé
Service de restauration système : Service de restauration système
Service de transfert intelligent en arrière-plan : Manuel
Service d’indexation : Désactivé
Services IPSEC : Désactivé
Services Terminal Server : Manuel
Simple Mail Transfer Protocol (SMTP) : Désactivé
Téléphonie : Désactivé
Telnet : Désactivé
Webclient : Désactivé
 

Ces manipulations sont un peu fastidieuses mais l’intérêt n’est pas négligeable en terme d’occupation mémoire et de charge processeur.

Pour aller plus loin, j’ai procédé à plusieurs autres optimisations :

Ne plus rechercher automatiquement les dossiers et imprimantes partagés

Dans l’explorateur Windows > Menu Outils > Options des dossiers > Onglet Affichage > Paramètres avancés > Décocher ‘Rechercher automatiquement les dossiers et imprimantes partagées’

Sélectionner les programmes lancés au boot

Démarrer > Exécuter > Msconfig > Onglet Démarrage > Décocher les programmes inutiles

Décharger les DLL non utilisées en mémoire

Démarrer > Exécuter > REGEDIT > Se positionner sur HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft, Windows\CurrentVersion\Explorer
Créer une valeur DWORD 32 bits nommée ‘AlwaysUnloadDll’ et lui attribuer comme valeur : 1
Fermer REGEDIT

Désactiver les compteurs de performance des disques durs

Démarrer > Exécuter > cmd > diskperf -N

Conserver le noyau en mémoire

Démarrer > Exécuter > REGEDIT > Se positionner sur HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\Memory Management
Passer la valeur DWORD “DisablePagingExecutive” de 0 à 1

 Accélérer le boot

Démarrer > Exécuter > REGEDIT > Se positionner sur HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction
Passer la valeur DWORD Enable de N à Y

Désactiver la pagination

Démarrer > Panneau de configuration > Système > Onglet Avancé > Section Performances > Onglet Avancé > Mémoire virtuelle > Modifier
Cocher Aucun Fichier d’Echange puis cliquer sur Définir.

Vider le répertoire temporaire et faire une défragmentation

Démarrer > Exécuter > %TEMP% > Supprimer l’ensemble des fichiers.
Lancer une défragmentation du disque dur.

Désactiver les périphériques inutilisés

Démarrer > Exécuter > C:\Windows\System32\devmgmt.msc
Clic droit sur le périphérique puis DESACTIVE

Désactiver les sons Windows

Démarrer > Panneau de Configuration > Sons et Périphériques Audio > Sons > Modèles de sons
Choisir Aucun Son

L’ensemble des optimisations ont été réalisées.

LA HACK CLAVIER

Il restait une problématique à régler : le logiciel SPARKBOOTH permet de changer les LAYOUT et les STYLES DE COULEUR avant le lancement des prises de vues. Par défaut, ce sont les hotkeys CTRL+J et CTRL+K qui sont définies et il est impossible de choisir d’autres touches.

Comme expliqué précédemment, j’ai utilisé un HACK CLAVIER pour simuler l’appui de la touche ESPACE via le gros bouton rouge. Mais, les hotkeys étant en fait une combinaison de 2 touches de clavier pressées, il est impossible de simuler directement ces hotkeys. J’ai donc du recourir à une solution de contournement.

J’ai installé 2 boutons dédiés, sur la caisse. Le premier, chargé de changer les styles dans SPARKBOOTH et le second, chargé de changer les LAYOUT.

Le premier montage à base de HC ne permettant l’utilisation que d’une touche (ESPACE) et n’étant pas modifiable car recouvert de colle chaude, par sécurité, j’ai du refaire un HC qui prévoit l’utilisation de 3 touches : ‘R’, ‘G’ et ‘ESPACE’.

L’idée étant de simuler les hotkeys ‘Ctrl+K’ et ‘Ctrl+J’ lorsque les touches ‘r’ et ‘g’ sont pressées respectivement. Pour ce faire, je vais utiliser l’excellent utilitaire : AUTOHOTKEY.

Cet utilitaire permet, entre autres, de remapper des touches, créer des hotkeys et scripter le tout voire le compiler. Un must !

Ici le script que j’ai créé ressemble à ça :

::r::^k  // touche ‘r’ pressée envoie la séquence ‘Ctrl+k’
::g::^j  // touche ‘g’ pressée envoie la séquence ‘Ctrl+j’

Après avoir testé le script, je l’ai compilé pour générer un fichier .EXE qui sera lancé au démarrage de la machine de manière silencieuse et transparente.

Note : Bien évidement, lors du branchement d’un clavier pour générer un Ctrl+Alt+Supp et lancer l’EXPLORER, il est nécessaire de tuer le processus sous peine de ne pouvoir utiliser les touches ‘r’ et ‘g’ choisies … (vécu !)

EDIT du 17/02/2015

Pour répondre à une demande de location du PHOTOBOOTH, j’ai réfléchi à une solution de copie sur clé USB des clichés générés lors d’une session, de manière autonome : sans clavier ni souris.

L’ajout d’un bouton supplémentaire étant impossible, j’ai décidé d’utiliser la combinaison des 2 boutons COLOR et LAYOUT pour déclencher l’action de copie des photos.

Pour ce faire, c’est l’excellent utilitaire : AUTOHOTKEY qui m’a permis de créer un hotkey en modifiant le script initial pour en créer deux, lancés par alternance.

Voici le premier script, compilé (INIT.EXE) et lancé au démarrage de la machine. Chargé de lancer SPARKBOOTH et d’appeler le second SCRIPT (xcopy.ahk) sur appui du combo ‘COLOR’ et ‘LAYOUT’ :

run, “c:\Program Files (x86)\Sparkbooth 4\Sparkbooth 4.exe”
return

r & g::
Process,Close,Sparkbooth 4.exe
run, c:\xcopy.ahk
exitapp
return

r::
Send ^k
return

g::
Send ^j
return

Le second script est chargé de lancer la copie des planches photos et des photos unitaires sur la clé USB. Des écrans d’aides et un guidage sonore guide l’utilisateur pendant la manipulation.

Splashimage,off
Splashimage,C:\INSERERUSB.jpg,,,,DECHARGEMENT DES PHOTOS SUR CLE USB
Soundplay,c:\INSERERUSB.mp3,Wait
return

r::
sleep,5000
Splashimage,off
Splashimage,C:\COPIEPHOTOS.jpg,,,,COPIE DES PHOTOS EN COURS…
SoundPlay,c:\COPIE.mp3,wait
FileCopy,D:\test,e:,1
FileCopy,D:\photos,e:,1
Sleep,10000
Splashimage,C:\RETIRERUSB.jpg,,,,COPIE DES PHOTOS ACHEVEE !
SoundPlay,c:\COPIEOK.mp3,wait
sleep, 10000
run, startexit.ahk
exitapp
return

Je pense qu’il n’y a pas plus intuitif !

LE PROJET EST MAINTENANT ACHEVE !

Pour visualiser des photos & vidéos du Photobooth, rendez-vous ICI !

Please like & share:

Laisser un commentaire

Your email address will not be published. Required fields are marked *