|
|
Up |
|
|
  |
Author: Paul GaboritPaul Gaborit Date: Feb 21, 2008 08:31
On me demande dans un programme écrit en Perl/Tk d'ajouter une aide en
ligne.
Sous unix, je compte faire une arborescence de fichiers HTML et
appeler le navigateur par défaut pour la consultation.
Sous Windows, on me demande d'utiliser un fichier CHM (il me sera
fourni... ouf!). J'ai donc le chemin du fichier CHM. Mais je ne sais
pas quoi en faire car je ne connais pas la commande Windows standard
qui assure la consultation de ce genre de fichiers.
Auriez-vous une solution ?
Merci.
|
| |
|
| | 8 Comments |
|
  |
Author: Paul GaboritPaul Gaborit Date: Feb 21, 2008 09:39
À (at) Thu, 21 Feb 2008 18:10:21 +0100,
mdnews écrivait (wrote):
> Rien de spécial à faire car l'extension est déjà associée (à winhlp32
> ou hh) dans windows. Donc un simple:
>
> system 'aide.chm';
>
> ou
>
> system 'start aide.chm';
>
> start permet de lancer le fichier et rend la main
Ok. Je vais tester cette solution.
Merci.
|
| |
|
| | no comments |
|
  |
Author: Paul GaboritPaul Gaborit Date: Mar 19, 2008 09:01
À (at) Thu, 21 Feb 2008 18:10:21 +0100,
mdnews écrivait (wrote):
> On Thu, 21 Feb 2008 17:31:50 +0100, Paul Gaborit
> wrote:
>>Sous Windows, on me demande d'utiliser un fichier CHM (il me sera
>>fourni... ouf!). J'ai donc le chemin du fichier CHM. Mais je ne sais
>>pas quoi en faire car je ne connais pas la commande Windows standard
>>qui assure la consultation de ce genre de fichiers.
>>
>>Auriez-vous une solution ?
>
> Rien de spécial à faire car l'extension est déjà associée (à winhlp32
> ou hh) dans windows. Donc un simple:
>
> system 'aide.chm';
>
> ou
>
> system 'start aide.chm';
> ...
|
| Show full article (1.30Kb) |
| no comments |
|
  |
Author: Paul GaboritPaul Gaborit Date: Mar 19, 2008 10:45
À (at) Wed, 19 Mar 2008 18:20:02 +0100,
mdnews écrivait (wrote):
> - Ce sont des « ' » et pas « " » (important)
> - Start est juste séparé par un espace du programme qu'il lance
Ok, donc on est obligé de passer par l'interpréteur de commandes en
faisant :
systeme "start lechemindufichier.chm";
et non :
systeme "start", "lechemindufichier.chm";
qui évite de passer par l'interpréteur mais ne fonctionne pas...
> Je viens de retester pour voir
> (petit exemple qui affiche l'aide de ntbackup)
> %%windir%%\system32\ est une variable Windows
>
>
> print "Debut du programme\n";
> system 'start %%windir%%\system32\ntbackup.chm';
> print "Suite - L'aide est toujours affichee\n";
|
| Show full article (1.48Kb) |
| no comments |
|
  |
Author: Paul GaboritPaul Gaborit Date: Mar 20, 2008 03:44
À (at) Thu, 20 Mar 2008 11:38:01 +0100,
mdnews écrivait (wrote):
> Paul Gaborit >
>
>> system 'start C:/Program Files/Machin/fichier.chm';
>>
>> l'interpréteur windows coupe après Program !
>
>
> L'interprétation faite par windows est toujours un peu bizarre, car start
> n'est pas un programme, mais une commande interne, du coup passé en
> argument 0 ça ne fonctionne pas.
>
> On peut bricoler en utilisant les noms courts
>
> system ' start C:/Progra~1/Machin/fichier.chm ' ;
>
> (pour connaître le nom court (8+3) d'un fichier ou répertoire)
>
> DIR /X ...
|
| Show full article (0.82Kb) |
| no comments |
|
  |
Author: Jean-Louis MORELJean-Louis MOREL Date: Mar 20, 2008 04:59
Dans l'article ,
Paul.Gaborit@invalid.invalid a dit...
>
>Je veux bien bricoler... mais comment fait-on pour convertir un nom
>long en nom court depuis un script Perl ?
>
Pour convertir un nom long en court, on utilise GetShortPathName du module
Win32 (standard) :
http://www.bribes.org/perl/docfr/win32.html#L23ECFD43
Plus généralement, j'ai bien cherché mais n'ai trouvé aucun module pour le
système d'aide Windows. Alors j'en ai écrit un en vitesse. Il n'est pas
très élaboré mais il permet d'ouvrir un fichier .chm où on veut.
Il s'appelle Win32-HtmlHelp. La doc est minimale.
Semble fonctionner sous XP et Vista (tests minimum).
On peut l'installer avec ppm :
ppm install http://www.bribes.org/perl/ppm/Win32-HtmlHelp.ppd
À essayer, en espérant que ça aide.
Toute suggestion est bienvenue.
|
| Show full article (0.90Kb) |
| no comments |
|
  |
Author: Paul GaboritPaul Gaborit Date: Mar 20, 2008 07:27
À (at) 20 Mar 2008 11:59:16 GMT,
jl_morel@ bribes.org (Jean-Louis MOREL) écrivait (wrote):
> Dans l'article ,
> Paul.Gaborit@invalid.invalid a dit...
>>
>>Je veux bien bricoler... mais comment fait-on pour convertir un nom
>>long en nom court depuis un script Perl ?
>>
Malheureusement oui...
|
| Show full article (1.52Kb) |
| no comments |
|
  |
Author: MM Date: Mar 20, 2008 11:57
Paul Gaborit a écrit :
> À (at) Thu, 20 Mar 2008 11:38:01 +0100,
> mdnews écrivait (wrote):
>> Paul Gaborit >
>>
>>> system 'start C:/Program Files/Machin/fichier.chm';
>>>
>>> l'interpréteur windows coupe après Program !
>>
>> L'interprétation faite par windows est toujours un peu bizarre, car start
>> n'est pas un programme, mais une commande interne, du coup passé en
>> argument 0 ça ne fonctionne pas.
>>
>> On peut bricoler en utilisant les noms courts
>>
>> system ' start C:/Progra~1/Machin/fichier.chm ' ;
>>
>> (pour connaître le nom court (8+3) d'un fichier ou répertoire)
>>
>> DIR /X ...
|
| Show full article (1.11Kb) |
| no comments |
|
  |
|
|
  |
Author: KlausKlaus Date: May 11, 2008 03:21
On Mar 19, 7:45 pm, Paul Gaborit wrote:
>
> Or, si je passe brutalement :
>
> system 'start C:/Program Files/Machin/fichier.chm';
>
> l'interpréteur windows coupe après Program !
Voici comment se protéger contre des blancs :
si le système d'exploitation est Windows, alors
utiliser des guillemets pour se protéger contre des blancs
sinon
mettre systématiquement des anti-slash "\" devant les blancs
Malheureusement, chaque système d'exploitation a sa propre méthode
pour se protéger contre les blancs: --> la méthode Windows ne marche
pas sous Unix et la méthode ne marche pas sous Windows.
je propose donc :
my $fic = q{C:/Program Files/Machin/fichier.chm};
|
| Show full article (0.85Kb) |
| no comments |
|
RELATED THREADS |
  |
|
|
|
|
|