Probleme de ShellExecute tordu !

Résolu
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 - 9 janv. 2005 à 19:23
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre 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 :)

7 réponses

cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
10 janv. 2005 à 03:42
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.
3
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
10 janv. 2005 à 03:43
oupps...

ExtractFilePath(F) et pas s, lol

Bon Coding ....

ManChesTer.
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
10 janv. 2005 à 11:13
Cool. Il fallait donc lui préciser le repertoire de travail, bizarre... m'enfin ca roole :)

Merci bôcoo :D

gnh !
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
10 janv. 2005 à 11:20
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
10 janv. 2005 à 12:28
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
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
10 janv. 2005 à 14:29
Vivi, sur a 100% je viens de checker. D'ailleurs mapstore se ferme bien, mais j'ai ce warning....

gnh !
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
10 janv. 2005 à 15:25
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.
0