|
|
|||||
|
Une question revient souvent sur les forums de CodePPC : "Comment faire pour que mon programme développé avec eVB ait sa propre icône et non l'icône du runtime ?" La réponse est en soit assez simple, il faut créer un programme en eVC++ qui soit capable de lancer tout seul le programme eVB. Dans la pratique, si on a pas trop l'habitude ça risque d'être un peu plus compliqué.
Le besoin est simple. Il faut que ce programme .exe (qui a donc sa propre icône) soit capable de lancer un .vb qui se trouve dans le même dossier que lui. Pour cela nous allons devoir effectuer un petit traitement de chaine et utiliser une fonction qui soit capable de lancer la bonne application (en ce qui nous concerne le runtime eVB) à partir d'un nom de document (notre .vb). Il existe une API qui est capable de lancer le bon programme à partir du nom du document, c'est ShellExecute.
Le mieux est de créer une fonction qui prend en paramètre le nom du .vb à lancer. Son code doit globalement ressembler à ça :
Cette fonction "ExecuteApp" est très simple. Pour commencer on récupère le chemin complet du programme .exe qui tourne (notre lanceur). Un traitement sur cette chaine (attention UNICODE) est effectué pour récupérer tout le chemin sans le nom du programme (ex "\Windows\Toto.exe" devient "\Window"). Pour terminer, on crée à partir de ce chemin et du paramètre passé à la fonction le chemin final à exécuter ("\Window" et "\Essai.vb" deviennent "\Windows\Essai.vb") qui est ensuite passé à la fonction "ShellExecute". Là, le runtime eVB est lancé avec comme paramètre de travail le fichier .vb demandé.
Il est bien important de comprendre qu'à chaque programme .vb auquel vous voulez associer un lanceur, vous devrez modifier les sources de ce même lanceur pour qu'il intègre la bonne icône et le bon nom de fichier .vb à lancer. Pour celà, le plus simple est de vous créer un squelette de lanceur que vous utiliserez à chaque fois en modifier uniquement l'icône et l'appel à la fonction de lancement. Dans votre programme eVC++ il vous suffit alors, dans la fonction WinMain (qui est le point d'entrée des programmes Windows) de lancer la fonction d'exécution et de quitter immédiatement après. Si par exemple vous voulez lancer "MonProgramme.vb" vous pouvez écrire :
Il ne vous reste plus qu'à renommer le .exe avec le nom qui convient (ici MonProgramme.exe) et de le placer à coté du .vb à lancer pour que l'icône soit disponible. Pour ce qui est de la création du programme d'installation, il faut là aussi effectuer quelques manipulations pour intégrer le lanceur à l'install et pour faire en sorte qu'il devienne le programme qui doit être utilisé comme référence. Mais ça, ça fera l'objet d'un autre article, si ça vous intéresse bien sûr... Si vous rencontrez des problèmes concernant cet article, n'hésitez pas à poser vos questions sur les forums "eVC++" ou "Articles eVC++" de CodePPC. |
|
||||
|
|
|||||
|
Copyright 2001-2004 - Tous droits réservés
|
|||||
|
iPAQ
est un produit de COMPAQ.
|