Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
829 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Commande exec

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Commande exec

n°522169
amsterdam
Posté le 24-09-2003 à 14:08:07  profilanswer
 

Salut.
Voilà, je me suis fait un menu graphique en turbo pascal pour lancer des applications DOS(ghost,etc...).
La partie graphique fonctionne à part qques petits détails.
Mais pas moyen de faire fonctionner exec.
Je fait ceci: exec(tabch[1],'');
** tabch[1] contient par exemple x:\ghost.exe
 
La commande exec est liée à la touche enter mais de ce coté là pas de prob j'ai vérifié.
 
Si qqun a une soluce.
 
ps: sur conseils zavisés d'un autre forum j'ai testé la bidouille {$m 4096,0,0} mais rien. :/
 
Merci d'avance.

mood
Publicité
Posté le 24-09-2003 à 14:08:07  profilanswer
 

n°522292
amsterdam
Posté le 24-09-2003 à 15:58:18  profilanswer
 

Y a t'il moyen de faire autrement que d'utiliser exec ?

n°522514
amsterdam
Posté le 24-09-2003 à 19:54:27  profilanswer
 

:bounce:  euuuuu

n°522841
amsterdam
Posté le 25-09-2003 à 01:32:06  profilanswer
 

:hot:

n°522875
Taz
bisounours-codeur
Posté le 25-09-2003 à 08:31:46  profilanswer
 

pas la peine de upper :  consulte ta documentation
 
je sais pas ce qu'il est est en pascal, mais j'aurais eu tendance d'échapper le \ -> \\ dans n'importe quel langage

n°523176
amsterdam
Posté le 25-09-2003 à 13:59:34  profilanswer
 

Désolé mais quand je me retrouve en deuxième page j'ai tendance à upper. :d
Sinon j'avais déjà consulté l'aide de TP sur exec(3 lignes) mais ça ne donne rien.
Le \\ ne fait pas de miracle non plus malheureusement. :/

n°524188
skelter
Posté le 26-09-2003 à 17:38:55  profilanswer
 

Taz a écrit :

pas la peine de upper :  consulte ta documentation
 
je sais pas ce qu'il est est en pascal, mais j'aurais eu tendance d'échapper le \ -> \\ dans n'importe quel langage


 
non en pascal pas la peine de doubler le \
sinon "exec" g connait pas, d'habitude pour lancer un prog j'utilise ShellApi


Message édité par skelter le 26-09-2003 à 17:44:49
n°524366
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-09-2003 à 23:26:12  profilanswer
 

Taz a écrit :


 
je sais pas ce qu'il est est en pascal, mais j'aurais eu tendance d'échapper le \ -> \\ dans n'importe quel langage


 
En Pascal y a pas de caractère d'échappement :o
On met les caractèrs spéciaux hors des chaînes, genre 'ligne1'#13#10'ligne2'
ça a des avantages et des inconvénients :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°524367
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-09-2003 à 23:27:16  profilanswer
 

skelter a écrit :


sinon "exec" g connait pas, d'habitude pour lancer un prog j'utilise ShellApi


 
plutôt ShellExecute tu veux dire [:figti] ShellAPI étant le nom de la unit contenant cette fonction.
Mais s'il utilise Turbo Pascal, ça veut dire qu'il utilise un compilateur DOS, ça va pas être évident pour accéder aux API Windows [:dawa]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°524369
JWhy
je peux plier (héhé)
Posté le 26-09-2003 à 23:43:39  profilanswer
 

si tu lances un exe, ca devrait marcher tel quel :??:
 
par contre si tu lances des commandes dos ou un batch (.cmd, .bat) il faut que lances command.com avec en params le batch/la commande a executer
si mes souvenirs sont bons, ca devrait etre qqchose comme ca:

exec(getenv('COMSPEC'),' /C C:\monbatch.bat);


 
au pire, essaye de lancer ton .exe comme un batch , en faisant

exec(getenv('COMSPEC'),' /C C:\monprog.exe);


ou

exec(getenv('COMSPEC'),' /C start C:\monprog.exe);


 
 
tu peux aussi essayer d'afficher le resultat de la fonction doserror() apres l'appel a exec(), ca te dira au moins si ca s'est bien passé ou pas... (Cf l'aide de TP pour les codes)


---------------
www.alliancefrancophone.org ... Home is where the heart is
mood
Publicité
Posté le 26-09-2003 à 23:43:39  profilanswer
 

n°524408
amsterdam
Posté le 27-09-2003 à 02:17:34  profilanswer
 

:jap:  
J'essairai ça ce soir et je vous dirait si ça marche.
Parce que là dodo.

n°524425
Taz
bisounours-codeur
Posté le 27-09-2003 à 10:00:09  profilanswer
 

antp a écrit :


 
En Pascal y a pas de caractère d'échappement :o

alors occupe toi des tes boolays au lieu de les laisser upper 4x par jour  :o

n°524997
amsterdam
Posté le 28-09-2003 à 18:05:03  profilanswer
 

Désolé mais ça ne fait rien. :/
Tant pis je continue à chercher.
Merci quand même. :)
Sauf pour taz le pitbull  :na:  :na:

n°525307
amsterdam
Posté le 29-09-2003 à 06:33:14  profilanswer
 

Bon ça avance. :)
J'ai creé un autre prog pour tester le exec séparément.
Ceci fonctionne:


{$M 8192,0,0}
uses dos;
 
begin
swapvectors;
exec(Getenv('comspec'), ' /c c:\windows\notepad.exe');
swapvectors;
writeln(doserror);
readln;
end.


Par contre si je l'intègre dans mon prog principal le {$m 8192,0,0} pose problème car TP me dit alors que graph n'est pas initialisé.
Mais si je l'enlève bah le graph passe mais plus le exec. :(
 
Qqun aurait il une idée ?
 
Ps: si c'est juste pour me traiter de boulay inutile de poster. :d


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Commande exec

 

Sujets relatifs
Nouvelle commande executer !?Defit : Nouvelle commande executer
[MySQL] Truc tout con... Commande ALTER ??[Javanns ou snns] Ligne de commande.
shell: commande ulimit??? et qu'est ce que nice()???Batch pour suppression de fichiers erreur lors de l'exec :( [16/09]
Commande pour la taille d'un dossier en octets ?Commande Dos.
[php] - commande system et exec 
Plus de sujets relatifs à : Commande exec


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR