Le premier site francophone dédié au développement Pocket PC


Comment lancer un autre programme depuis eVB ?
 
   

 

Plus nous développons pour nos chers Pocket PC, plus nous éprouvons le besoin de lancer plusieurs processus afin d'étendre les fonctionnalités de nos créations. On peut par exemple avoir envie de lancer l'écoute d'un fichier MP3 depuis la gestion titres MP3 que l'on a développé.

Shell

Avec VB, le grand frère pour PC de eVB, il y a la commande "Shell", et avec eVB... Il n'y a rien !Pas grave, on va contourner le problème et utiliser nos bonnes vieilles APIs Windows CE.

CreateProcess

L'API qu'il nous faut est "CreateProcess", et elle se trouve (biensûr) dans la librairie dynamique "Coredll.dll". On la déclare en eVB de la manière suivante :

Public Declare Function CreateProcess Lib "coredll" Alias "CreateProcessW" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttribute As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, ByVal lpStatupInfo As Long, ByVal lpProcessInformation As Long) As Boolean

Nous avons déclaré cette API comme une fonction retournant une valeur de type booléenne alors que dans le grand livre des ombres (le manuel de eVC++) on la déclare comme retournant un entier long. En utilisant une valeur booléenne à la place d'un long, cette fonction nous retourne vrai (True) si elle s'est bien passée, et faux (False) dans le cas contraire, c'est aussi simple que çà.

Lancer des programmes (.exe)

Pour lancer par exemple Media Player depuis votre programme eVB, il suffit d'écrire :

Dim Retval as Boolean
Retval = CreateProcess("\Windows\Player.exe", "", 0, 0, 0, 0, 0, 0, 0, 0)

Pour lancer Media Player en lecture sur le fichier "\Mes Documents\Morceau.mp3" il suffit d'écrire :

Dim Retval as Boolean
Retval = CreateProcess("\Windows\Player.exe", "\Mes Documents\Morceau.mp3",0 ,0, 0, 0, 0, 0, 0, 0)

Lancer des programmes eVB (.vb)

Pour lancer un programme eVB depuis un autre programme (eVB ou non) il faut savoir que le fichier en .vb n'est pas directement exécutable. C'est un programme spécialisé qui interprête votre programme eVB. Cet interprêteur est "pvbload.exe", c'est d'ailleurs pour celà que l'on ne peut pas modifier l'icone d'un programme eVB, il porte toujours celui de l'exécutable avec qui il est associé, à savoir "vpbload.exe". Donc, si on veut lancer un programme eVB "\dvlp\test\toto.vb" il suffit d'écrire :

Dim Retval as Boolean
Retval = CreateProcess("pvbload.exe", "\dvlp\test\toto.vb", 0, 0, 0, 0, 0, 0, 0, 0)

Lancer un fichier d'aide

Pour lancer un fichier d'aide depuis votre programme, il faut savoir comment fonctionne le moteur d'aide de votre Pocket PC. Un programme spécial est chargé d'afficher l'aide en ligne. Ce programme est "peghelp.exe". Il suffit de la lancer avec comme argument de ligne de commande le fichier d'aide (.htm) à afficher. Si nous voulons lancer le fichier d'aide du Reader, il suffit d'ecrire :

Dim Retval as Boolean
Retval = CreateProcess("peghelp.exe", "\windows\ebook.htm", 0, 0, 0, 0, 0, 0, 0, 0)

Le lancement et la gestion des fichiers d'aide feront l'objet d'un article complet.

Voilà, avec cette API CreateProcess, vous pouvez lancer d'autre programmes depuis vos applications eVB, et franchement, çà peut toujours servir.

Note : En cas de problème avec cet article, n'hésitez pas à utiliser le forum eVB pour poser vos questions.

 

Stéphane Sibué

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.