PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Lance une aplli windows depuis windev
Lance une aplli windows depuis windev
Iniciado por dominique.forest, set., 29 2005 5:45 PM - 7 respostas
Publicado em setembro, 29 2005 - 5:45 PM
Je veux lancer un application installé normallement avec un installeur classique.

si dans windows je clique "démarrer \ Exécuter \ le nom de mon aplli" celle ci se lance sans probléme et sans que je précise le répertoire ou est installé l'appli.

Comment faire pour que depuis windev je puisse lancer cette appli sans préciser son répertoire ?
J'ai essayé avec LanceAppli mais ça ne marche pas.

Merci pour vos réponse

Cordialement Dominique.
Publicado em setembro, 29 2005 - 9:28 PM
LanceAppli a besoin d'indiquer (au moins lors de sa config) le chemin de l'appli (via assistant).

Cela étant, il y a possibilité de faire différemment avec LanceAppliAssociée. Il suffit d'indiquer en paramètre un fichier avec l'extension de l'appli à lancer...mais toujours avec son chemin.

Donc finalement, cela vaut le coup de prendre 2 minutes pour localiser le chemin exact de l'appli à lancer via LanceAppli.
Publicado em setembro, 29 2005 - 11:27 PM
Dominique FOREST a écrit :
Je veux lancer un application installé normallement avec un installeur classique.

si dans windows je clique "démarrer \ Exécuter \ le nom de mon aplli" celle ci se lance sans probléme et sans que je précise le répertoire ou est installé l'appli.

Comment faire pour que depuis windev je puisse lancer cette appli sans préciser son répertoire ?
J'ai essayé avec LanceAppli mais ça ne marche pas.

Merci pour vos réponse

Cordialement Dominique.

Bonsoir,
il faut que cette appli soit dans le path

--
Cordialement,
Chris
Publicado em setembro, 30 2005 - 2:00 AM
Salut

Démarrer > Exécuter fait appel à l'API ShellExecute que tu peux obtenir par
la commande WLangage LanceAppliAssociée.
Dans ce cas pas besoin de spécifier le path.
Pour ce qui est des détails, les applis sont référencées (par les
installeurs en général) dans la clé de registre
HKLM\software\Microsoft\Windows\AppPath\<nom de l'exe>, la valeur par défaut
contenant le chemin dudit EXE.

Kevin


"Dominique FOREST" <dominique.forest@peintamelec.com> a écrit dans le
message de news: 433bf73b$1@news.pcsoft.fr...


Je veux lancer un application installé normallement avec un installeur
classique.

si dans windows je clique "démarrer \ Exécuter \ le nom de mon aplli"
celle ci se lance sans probléme et sans que je précise le répertoire ou
est installé l'appli.

Comment faire pour que depuis windev je puisse lancer cette appli sans
préciser son répertoire ?
J'ai essayé avec LanceAppli mais ça ne marche pas.

Merci pour vos réponse

Cordialement Dominique.
Publicado em setembro, 30 2005 - 7:50 AM
Bonjour

Perso pour lancer l'outil de messagerie par défaut je fais

LanceAppliAssociée("mailto:"+aaaa)

aaaa étant le nom du champs qui contient, dans ce cas, un e-mail

Didier
Publicado em setembro, 30 2005 - 3:04 PM
Salut,

Moi aussi j'ai une appli (créé en Windev) qui s'instal par défaut dans C:\ProgramFiles.......

Et lorsque je fais LanceAppliAssocié et bien il n'y a rien.

J'ai posé la question sur le forum, malheureusement sans résultat.

Je reste en suivi de ton post.

Pascal
Publicado em outubro, 01 2005 - 12:23 PM
Bonjour,

C'est normal que la commande LanceAppliAssocié() ne fonctionnera pas pour lancer votre application. puisque elle repose sur le principe que : un tel fichier ou tel extention de fichier est liée à l'application dans la base de registre - exemple : .doc = Winword, .xls = excel ....

Pour celà je vous ai créer une recette magique en se basant sur ce principe.

// A l'installation de votre application windev ou à son lancement : executer ce code dans une procedure./
Procedure LancementRapideDeMonApplication()
//Choisir une exention non utilisable par aucun prog. exemple ".1"
SI PAS RegistreExiste("HKEY_CLASSES_ROOT\.1")
Chemin est une chaîne=""
//
Chemin="HKEY_CLASSES_ROOT\.1"
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
RETOUR
FIN
Chemin="HKEY_CLASSES_ROOT\Application\"+fExtraitChemin(ExeInfo(exeNom),fFichier+fExtension)
SI RegistreExiste(Chemin)
SI RegistreEcrit(Chemin, "",Caract(34)+ExeInfo(exeNom)+Caract(34)+Caract(34)+"%1"+Caract(34)) = Faux ALORS
Erreur("Erreur lors l'écriture dans la clé : ",Chemin)
FIN
SINON
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
SINON
Chemin+="\Shell"
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
RETOUR
SINON
Chemin+="\Open"
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
RETOUR
SINON
Chemin+="\Command"
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
RETOUR
SINON
SI RegistreEcrit(Chemin, "",Caract(34)+ExeInfo(exeNom)+Caract(34)+Caract(34)+"%1"+Caract(34)) = Faux ALORS
Erreur("Erreur lors l'écriture dans la clé : ",Chemin)
FIN
FIN
FIN
FIN
FIN
FIN
Chemin="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.1"
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
RETOUR
SINON
SI RegistreEcrit(Chemin, "Application",Caract(34)+fExtraitChemin(ExeInfo(exeNom),fFichier+fExtension)+Caract(34)) = Faux ALORS
Erreur("Erreur lors l'écriture dans la clé : ",Chemin)
FIN
FIN
Chemin="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.1\OpenWithList"
SI RegistreCréeClé(Chemin) = Faux ALORS
Erreur("Erreur lors de la création de la clé : ",Chemin)
RETOUR
SINON
SI RegistreEcrit(Chemin, "a",Caract(34)+fExtraitChemin(ExeInfo(exeNom),fFichier+fExtension)+Caract(34))= Faux ALORS
Erreur("Erreur lors l'écriture dans la clé : ",Chemin)
FIN
FIN
FIN


//Dnas une autre application pour lancer votre 1ere application jste faire.

ResCréation est un entier = fCrée ("C:\Fichier.1")
SI ResCréation <> -1 ALORS
LanceAppliAssociée("c:\fichier.1")
fSupprime("c:\fichier.1")
FIN

//Vous pouver même dans n'importe quel emplacement créer un fichier texte 'vide' par Notepad et faites enregistrer sous 'VotreFichier.1' et lorsqu vous cliquer dessus :) surpris de voir votre application enfin se lancé.

Et vous êtes content pour toujours .... :-)

Ali Hindi : AliDev7@yahoo.fr
Publicado em outubro, 02 2005 - 9:39 AM
Bonjour,

Bien sûre pour lancer n'importe quelle autre application qui en principe ne se lance pas par LanceAppliAssocié juste modifier dans la sollution citée en dessus:

fExtraitChemin(ExeInfo(exeNom),fFichier+fExtension
par : VotreApplication.EXE
et : Caract(34)+ExeInfo(exeNom)+Caract(34)+Caract(34)+"%1"+Caract(34)
par : Caract(34)+CheminDeVotreApplication+Caract(34)+Caract(34)+"%1"+Caract(34)

//--------------------------------------------------------

2 ème méthode : Consiste à lancer une recherche de l'application avant son lancement par LanceAppliAssocié() mais c'est un peu lent.

CheminDepartRecherche est une chaine ASCIIZ sur 260="C:\" // ou autre path exp:"C:\Program Files"...
MonApplication est une chaine ASCIIZ sur 260="Applicataion.EXE"
Chemin est une chaine ASCIIZ sur 260
Res est un entier
Res=AppelDLL32("imagehlp","SearchTreeForFile",&CheminDepartRecherche,&MonApplication,&Chemin)
si Res alors
creeRaccourci("c:\","Test",Chemin,"",sfaNormal,"")
LanceAppliAssocié("""c:\Test.lnk""")
sinon
erreur("L'application n'est pas trouvée")
fin

et 2 Méthodes pour Accélerer les lancements pour les applications fréquament utilisés.

Soit créer un fichier .ini où sont stockés les paths des applications fréquament lancés.
ou créer un dossier où stocker les raccourcis créés après la 1ere manipulation.

Comme ça chercher d'abord dans le fichier ini ou le raccourci correspondant avant de lancer une recherche puis lancement.


Bon Dev.

Ali Hindi : Alidev7@yahoo.fr