Probleme de ShellExecute tordu ! [Résolu]

Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
- - Dernière réponse : JulioDelphi
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
- 10 janv. 2005 à 15:25
Hello World :)

Petit problème avec le lancement d'une appli externe (mais un peu + tordu, quand meme )

J'ai donc un bout de code sous Delphi7 qui me lance une appli externe :

ShellExecute(Application.Handle,nil,'D:\Program Files\Mapsonic\mapstore.exe',nil,nil,SW_SHOWDEFAULT);

qui marche tres bien. Là ou le bat blesse, c'est que l'executable là a la facheuse manie de mettre la balance audio tout à gauche, et c'est pas solutionnable.

Or donc, dans le petit monde du carmedia, qqun a fait un minitruc en VB qui lance mapstore, attend, n milliseconde, et remet la balance au centre. Ce prog, balance.exe n'a aucune interface, aucune fenetre.

Je peux exécuter balance.exe depuis zindoz en doublecliquant dessus, depuis une fenetre dos aussi. Mais si dans mon prog Delphi je mets

ShellExecute(Application.Handle,nil,'D:\Program Files\Mapsonic\balance.exe',nil,nil,SW_SHOWDEFAULT);

Pouf, je recoit en retour une jolie fenetre Erreur53, fichier introuvable, alors que le nom et le chemin du dit fichier sont corrects.

Et là, à force de ramer, j'attaque la falaise....

gnhelp :)
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
378
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
3
Merci
Essaye avec :

Uses SysUtils;
var F:String;

F:='D:\Program Files\Mapsonic\balance.exe';

ShellExecute(Application.Handle,'open',Pchar(F),nil,Pchar(ExtractFilePath(s)),
SW_SHOWDEFAULT);

Bon Coding ....

ManChesTer.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ManChesTer
Messages postés
378
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
0
Merci
oupps...

ExtractFilePath(F) et pas s, lol

Bon Coding ....

ManChesTer.
Commenter la réponse de cs_ManChesTer
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
0
Merci
Cool. Il fallait donc lui préciser le repertoire de travail, bizarre... m'enfin ca roole :)

Merci bôcoo :D

gnh !
Commenter la réponse de DeltaFX
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
0
Merci
Autre problème, a la fermeture maintenant, grmblblblblbbl

je ferme mapstore avec :

Hndl:=FindWindow(nil,'ViaMichelin Mapstore 2.32');
SendMessage(Hndl,WM_CLOSE,0,0); // 0,0 ou 1,1, pareil

Et là systématiquement j'ai droit a la pitie fenetre du programme qui a planté :
"Ce programme va être arreté car il a effectué une opération non conforme, gnagnaganag, Fermer, Debuguer, Détails>>"

Y aurait il un moyen de fermer un prog de manière propre ?
Commenter la réponse de DeltaFX
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
26
0
Merci
Une petite précaution s'impose avant de femer une fenêtre qui n'aurait pas été trouvée :

  Hndl:=FindWindow(nil,'ViaMichelin Mapstore 2.32');
  if Hndl <> 0 then
    SendMessage(Hndl,WM_CLOSE,0,0);


Es-tu sur à 100% que 'ViaMichelin Mapstore 2.32' est bien le titre qui apparait en haut de la fenêtre de l'application à fermer ?

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
Commenter la réponse de cs_Delphiprog
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
0
Merci
Vivi, sur a 100% je viens de checker. D'ailleurs mapstore se ferme bien, mais j'ai ce warning....

gnh !
Commenter la réponse de DeltaFX
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
0
Merci
attention de ne pas poster 2 questions differentes dans le meme post !
mieux vaut faire 2 questions surtout si il y a une "reponse acceptée" :/

deltafx : ton probleme viens d'ailleurs je pense.
Commenter la réponse de JulioDelphi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.