Nous sommes le Sam 19 Juil, 2025 20:51
Supprimer les cookies

Page 1 sur 21, 2 Suivant.lch Framakey

Image Image Forum dédié à notre projet de clé USB nomade libre sous Windows

Lun 29 Juin, 2009 16:37

Bonjour,

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

Lun 29 Juin, 2009 18:14

Bonjour,

Je vais faire une comparaison un peu audacieuse.

Sous windows, lorsque tu double clique sur un .bat, l'OS sait que ce fichier est associé à l'interpréteur de commandes cmd, il va donc passer le relais à ce dernier pour exécuter le contenu du fichier batch.

Avec les .lch c'est un peu la même chose : PortableFirefox sait, au travers du profil utilisé, qu'il doit essayer d'ouvrir les fichiers lch avec le programme Launch.exe qui est situé dans \PortableFirefox\firefox\.
C'est ensuite ce petit programme qui va traiter le contenu du fichier lch de manière à lancer la commande qui est contenue dedans.

Il est donc tout à fait normal que le Firefox de ton Pc ne soit pas capable d'utiliser ces fichiers puisque :
1/ il n'a pas la moindre idée de ce qu'il doit faire d'un .lch
2/ il n'a pas accès à Launch.exe

Voilà
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Lun 29 Juin, 2009 18:46

Plus d'explications ici : http://framakey.org/Tutoriels/PersonnaliserSaFramakey19

Et plus particulièrement :
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 !
L'homme n'est pas fait pour travailler et la preuve, c'est que ça le fatigue. (Marcel Proust)
dedenimes

Messages : 2410
Géo : proche de Nîmes

Mar 30 Juin, 2009 07:49

Merci beaucoup pour toutes ces explications très précises.

Comment faire alors pour lancer par exemple le navigateur par défaut.
Enfin comment serait constituer le fichier .lch pour faire un simple start http://www.google.fr par exemple?

Pour le moment j'arrive à dire à Firefox que le lch est une action particulière mais je n'arrive pas à lui dire où se trouve Launch.exe qui se trouve dans App/Firefox
On trouve dans mon App/Firefox également le répertoire defaults/profile où j'y ai stocké mon fichier Minetypes.rdf

D'avance merci pour votre aide
iUser59

Messages : 14

Mar 30 Juin, 2009 09:04

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.
Draknova

Messages : 158

Mar 30 Juin, 2009 09:20

Pour lancer le navigateur par défaut dans un .lch il faut faire comme ça
Application: rundll32.exe
Paramètres: url.dll, FileProtocolHandler http://www.google.fr

Mais je n'arrive toujours pas à spécifier l'endroit où se trouve mon Launch.exe

Lorsque je clique sur un lien .lch, il me demande bien quelle application je veux ouvrir et si je sélectionne launch.exe ça fonctionne bien mais je n'arrive pas à faire que ça se lance directement. Où puis-je régler ce paramètre et comment?

Encore merci pour les liens qui m'ont permis de mieux comprendre le fonctionnement

Et merci d'avance
iUser59

Messages : 14

Mar 30 Juin, 2009 10:59

fat115: Quand tu disais "il n'a pas accès à launch.exe", comment est-ce que tu peux rendre accessible launch.exe?
iUser59

Messages : 14

Mar 30 Juin, 2009 11:26

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.


Mais il faut passer par un serveur pour faire ça?!
iUser59

Messages : 14

Mar 30 Juin, 2009 12:43

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
takshil

Messages : 302
Géo : Brest

Mar 30 Juin, 2009 12:50

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


Malheureusement, ceci est pour les anciennes versions de Firefox :(

Il ne me reste plus qu'arriver à faire connaître launch.exe à mon firefox et le tour est joué. C'est dingue que je ne trouve rien là dessus.

Quelqu'un pour m'aider.

Merci pour les propositions :)
iUser59

Messages : 14

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit