J'aurais voulu connaître le fonctionnement des .lch contenus dans la framakey.
En effet, depuis un Firefox "Classic", je n'arrive pas à faire exécuter ces .lch.
D'avance merci
-
iUser59
- Messages : 14
Après 15 années d’existence, le forum historique de Framasoft, ferme ses portes.
Pour les nostalgiques et les curieux, il reste toujours possible de consulter les discussions mais c’est maintenant le forum
Framacolibri qui prend la relève.
Si vous avez des questions, on se retrouve là-bas…
Fichiers .lch
On l’a vu (et ce n’est pas faute de l’avoir répété, le FramaKiosk est basé sur Firefox, donc un navigateur web.
Or un navigateur n’a pas le droit, c’est même carrément tabou, d’éxecuter un fichier executable sur le disque de l’utilisateur. Heureusement : imaginez vous sur une page web, vous cliquez sur un lien et hop, votre Windows s’éteint. Ce type de chose serait possible si le navigateur pouvait intéragir avec les logiciels installés localement sur votre machine sans vous prévenir. C’est pour cela que si vous faites un lien vers un programme executable, une fenêtre d’alerte se lance et vous dit quelque chose du genre “Firefox tente de lancer l’application C:\Windows\Calculatrice.exe - Êtes-vous sûr de vouloir effectuer cette opération ?”. Il est décidemment poli et bien élevé, ce Firefox ! (contrairement à Internet Explorer qui, avant la version 6 ne vous posait pas forcément la question, ce qui posait de groooos soucis de sécurité)
Le souci, c’est que nous, on ne veut pas aller sur le web avec notre FramaKiosk, on veut rester en local, et on ne veut pas de ses fenêtres d’alerte, puisque le but c’est justement de lancer des logiciels…
Alors que faire ?
En fait, l’astuce revient à utiliser les mimetypes du navigateur. Par exemple, lorsque vous cliquez sur un fichier .mp3 sur une page web, vous avez bien votre lecteur MP3 qui se lance ? ou quand vous cliquez sur un fichier PDF, il lance votre visionneuse PDF ? Le type mime, c’est - en gros - de dire au navigateur “Si ton utilisateur clique sur un lien avec l’extension .truc, alors utilise le programme “C:\bidule\machin.exe” pour lire ce fichier .truc”.
Donc, dans le profil de notre FramaKiosk, on trouve Framakey\FramaKiosk\kioskprofil\mimeTypes.rdf, avec notamment :
- Code: Tout sélectionner
<RDF:Description RDF:about="urn:mimetype:application/launcher"
NC:value="application/launcher"
NC:editable="true"
NC:fileExtensions="lch"
NC:description="">
<NC:handlerProp RDF:resource="urn:mimetype:handler:application/launcher"/>
<RDF:Description RDF:about="urn:mimetype:externalApplication:application/launcher"
NC:prettyName="Launcher"
NC:path="Launch.exe" />
<RDF:Description RDF:about="urn:mimetype:handler:application/launcher"
NC:alwaysAsk="false"
NC:saveToDisk="false">
<NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/launcher"/>
</RDF:Description>
En résumé, ça dit : “Si tu trouve un fichier .lch, c’est un fichier qui va fonctionner avec le logiciel ‘Launcher’. Et le programme ‘Launcher’ s’appelle en réalité ‘Launch.exe’. Et tant que tu y es, lorsque tu donnes un fichier .lch à manger à Launch.exe, pas la peine de poser une alerte avant de l’ouvrir”.
C’est sympatique, non ?
Pour info, pour pouvoir fonctionner avec des chemins relatifs, Launch.exe se trouve dans /Apps/PortableFirefox/firefox/Launch.exe
Bon, la bonne nouvelle, c’est que tout ça, ça ne vous servira probablement pas. La mauvaise, c’est qu’on ne peut pas passer directement le chemin de l’application à lancer, il faut passer par un fichier intermédiaire : le fameux fichier .lch.
Comment se présente se fichier ?
Tout simplement comme ça :
- Code: Tout sélectionner
[Launch]
ExecuteFile=${cwd}\..\..\..\Apps\Portable7-Zip\Portable7-Zip.exe
ExecuteDirectory=${cwd}\..\..\..\Apps\Portable7-Zip\
“${cwd}” indique le “current working directory”, c’est à dire l’emplacement de Launch.exe
En indiquant “${cwd}\..\..\..\”, on remonte donc à la racine de la Framakey, et en ajoutant “Apps\Portable7-Zip\Portable7-Zip.exe” on indique le fichier à lancer.
La variable “ExecuteDirectory=${cwd}\..\..\..\Apps\Portable7-Zip\” indique le dossier de l’application dans lequel on veut se placer. Ce n’est pas obligatoire, mais si on ne l’indique pas, certaines applications ne savent plus où elles se trouvent et perdent un peu les pédales.
Mieux, on peut aussi passer des paramètres ! Ainsi :
- Code: Tout sélectionner
[Launch]
ExecuteFile=${cwd}\..\..\..\Apps\PortableFirefox\PortableFirefox.exe
ExecuteParameters=http://www.framasoft.net/
indique par exemple de lancer PortableFirefox avec en paramètre une adresse web. Si on clique sur ce fichier .lch depuis le FramaKiosk, on lance donc Firefox avec Framasoft.net en page d’accueil.
Autre exemple :
- Code: Tout sélectionner
[Launch]
ExecuteFile=${cwd}\..\..\..\Apps\PortableSumatraPDF\PortableSumatraPDF.exe
ExecuteParameters=${cwd}\..\..\..\Data\Documents\pdf\livret_libre_a4_lecture-ed3.pdf
indique par exemple de lancer SumatraPDF avec en paramètre un fichier PDF. Si on clique sur ce fichier .lch depuis le FramaKiosk, on lance donc l’ouverture du “livret du libre” dans la visionneuse PDF.
Donc, si je reviens à l’interface, et à ma page jeux, j’avais un lien
<li><img src="img\apps\icons\sudoku.bmp" /> - <a href="lch\apps\sudoku.lch">Sudoku</a> : le célèbre casse tête mathématique</li>
Le fichier Framakey\FramaKiosk\FramaKioskPages\lch\apps\sudoku.lch contient :
- Code: Tout sélectionner
[Launch]
ExecuteFile=${cwd}\..\..\..\Apps\SudokuPortable\SudokuPortable.exe
ExecuteDirectory=${cwd}\..\..\..\Apps\SudokuPortable\
Donc, on y est : si je clique sur ce lien .lch, l’application SudokuPortable sera lancée !
<?php
exec('Le_Programme');
?>
Draknova a écrit:Petite alternative :
- Code: Tout sélectionner
<?php
exec('Le_Programme');
?>
C'est comme si tu lançais tes application depuis la commande executer. C'est le principe utilisé dans mon lanceur d'application.
takshil a écrit:Bonjour,
j'ai peut être une solution que je n'ai pas pris le temps de tester mais certains ont déjà testé pour plein d'autres choses avant moi ^^
il s'agit de l'extension MIME edit qui permet d'associer un type de fichier avec un programme particulier (je vais peut être le prendre pour me remplacer mon bureau de windows ^^ )
le lien : ici
Bonne journée
Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit