delphi lancer une fenêtre dos

delphi lancer une fenêtre dos - Delphi/Pascal - Programmation

Marsh Posté le 30-01-2006 à 16:28:31    

Bonjour,
je souhaite lancer un applicatif (logiciel) sur une machine distante.
Pour celà je dois lancer une fenêtre dos qui lance mon application via un client citrix.
En résumé :
comment lancer une fenêtre dos qui lance un client citrix et qui lance ensuite mon applicatif ?
 :??:

Reply

Marsh Posté le 30-01-2006 à 16:28:31   

Reply

Marsh Posté le 30-01-2006 à 16:45:40    

voir http://forum.hardware.fr/hardwaref [...] 2658-1.htm
 
Tu lance un fichier BAT avec la commande ShellExecute de l'API windows.

Reply

Marsh Posté le 30-01-2006 à 17:00:28    

Oui je sais bien mais c'est pas si simple / ma commande ne fonctionne pas :
ShellExecute(Handle, 'open', 'cmd',PChar('"C:\Program Files\Citrix\Client ICA\pn.exe"/APP "Mon appli" /PNI "61o0y200"+"dir"+#10#13'), nil, SW_SHOWNORMAL);

Reply

Marsh Posté le 30-01-2006 à 17:14:27    

renard42 a écrit :

Oui je sais bien mais c'est pas si simple / ma commande ne fonctionne pas :
ShellExecute(Handle, 'open', 'cmd',PChar('"C:\Program Files\Citrix\Client ICA\pn.exe"/APP "Mon appli" /PNI "61o0y200"+"dir"+#10#13'), nil, SW_SHOWNORMAL);


 
Déja, je ne peut pas deviner ce que "ne fonctionne pas" signifie. Il ne lance aucune comande? La fenetre DOS se lance sans rien faire?  
De plus, ce n'est pas ce que j'ai sugéré. Si tu sais lancer ton truc depuis une fenêtre DOS(si tu ne sais pas, je ne puis hélas t'aider), tu cré un ficher "toto.bat" avec ta commande, puis dans Delphi, tu met la ligne

ShellExecute(Handle, 'open', 'cmd',PChar('C:/MonRepertoire/toto.bat'), nil, SW_SHOWNORMAL);


 
--edit : A priori, ça supose que sur le système exécutant le programme Delphi, on n'ai pas reconfiguré le système pour que les .BAT s'ouvre avec un éditeur de texte. Je ne sais plus comment forcer l'ouverture dans une fenetre DOS sinon.


Message édité par Zozol le 30-01-2006 à 17:17:30
Reply

Marsh Posté le 30-01-2006 à 17:26:50    

Merci pour tes éléments.
en fait la commande sous dos est la suivante :
C:\>   "C:\Program Files\Citrix\Client ICA\pn.exe"  /APP "Mon appli" /PNI "61o0y193"
 
ceci lance un client citix puis le logiciel Mon appli.
 
Rappelles moi stp un comment crer mon .bat ?
 
Merci

Reply

Marsh Posté le 30-01-2006 à 17:31:20    

tu prend note pad, tu tape dedans :

"C:\Program Files\Citrix\Client ICA\pn.exe"  /APP "Mon appli" /PNI "61o0y193"


(j'ai comme un doute sur la validité de tes guillemet, mais c'est à toi de voir)
puis tu fait "sauvegarder sous" et tu met une extetion en ".BAT"
 
T'a plus qu'a double-cliquer sur le ficher créer pour lancer la fenetre DOS et la comande.
 
Pour la suite, ça permet surtout de lancer plusieur commandes DOS d'un coup. Vive les .BAT! .BAT is good for you  [:alandon]  

Reply

Marsh Posté le 30-01-2006 à 17:34:51    

Alors je viens de créer un .bat (toto.bat) dans le quel j'ai mis la ligne de commande  "C:\Program Files\Citrix\Client ICA\pn.exe"  /APP "Mon appli" /PNI "61o0y193"  
 
ShellExecute(Handle, 'open', 'cmd',PChar('C:/MonRepertoire/toto.bat'), nil, SW_SHOWNORMAL);
 
mais ça ne marche pas ? j'ai peux être oublié qq chose ??

Reply

Marsh Posté le 30-01-2006 à 18:07:34    

renard42 a écrit :

Alors je viens de créer un .bat (toto.bat) dans le quel j'ai mis la ligne de commande  "C:\Program Files\Citrix\Client ICA\pn.exe"  /APP "Mon appli" /PNI "61o0y193"  
 
ShellExecute(Handle, 'open', 'cmd',PChar('C:/MonRepertoire/toto.bat'), nil, SW_SHOWNORMAL);
 
mais ça ne marche pas ? j'ai peux être oublié qq chose ??


 
Oui  :fou:  
Tu a oublié de dire comment se manifeste le "ça ne marche pas"  :kaola:  
 
De toute façon, je suis sur que si tu ouvre une fenêtre DOS et que tu tape "C:\Program Files\Citrix\Client ICA\pn.exe"  /APP "Mon appli" /PNI "61o0y193" (avec les guillemet tel que tu les met), ça ne marche pas.

Reply

Marsh Posté le 30-01-2006 à 18:12:45    

Ok Ok alors la fenêtre dos s'ouvre mais ensuite ... plus rien.
 
Or lorsque je doubleclique sur le . bat tout fonctionne. la fenêtre dos s'ouvre lance citrix qui lance à son tour l'appli..
 
Le . bat fonctionne parfaitement. mais lancer depuis delphi ça ne marche pas ;-((

Reply

Marsh Posté le 30-01-2006 à 18:13:57    

ai-je été assez claire ? ou non sinon je précise.

Reply

Marsh Posté le 30-01-2006 à 18:13:57   

Reply

Marsh Posté le 30-01-2006 à 18:20:31    

Salut,
Je ne sais pas en delphi, mais en C++ le caractere '\' st un caractere special donc dans une chaine de caractere pour qu'il soit pris en compte faut le doubler: 'C:\\MonRepertoire\\toto.bat'

Reply

Marsh Posté le 30-01-2006 à 18:23:33    


Il doit manquer un '/c' dans ton truc .


---------------

Reply

Marsh Posté le 30-01-2006 à 18:26:52    

breizhbugs a écrit :

Salut,
Je ne sais pas en delphi, mais en C++ le caractere '\' st un caractere special donc dans une chaine de caractere pour qu'il soit pris en compte faut le doubler: 'C:\\MonRepertoire\\toto.bat'


Pas de problème en delphi

Reply

Marsh Posté le 30-01-2006 à 18:28:06    

renard42 a écrit :


ShellExecute(Handle, 'open', 'cmd',PChar('C:/MonRepertoire/toto.bat'), nil, SW_SHOWNORMAL);


c'est pas C:/MonRepertoire/toto.bat, mais C:\MonRepertoire\toto.bat
Si ça marche toujours pas, là je vois plus.


Message édité par Zozol le 30-01-2006 à 18:28:33
Reply

Marsh Posté le 30-01-2006 à 18:29:28    

renard42 a écrit :

ai-je été assez claire ? ou non sinon je précise.


C'est parfait, m'dame!  [:sachy]

Reply

Marsh Posté le 30-01-2006 à 20:17:54    

Merci à tous  pour vos remarques ! Mais ça ne marche tjs pas.
La fenêtre Dos est bien lancée mais pas le client citrix !! ;-((

Reply

Marsh Posté le 30-01-2006 à 20:46:42    

Je n'ai pas de quoi tester ici, mais je te sugererais d'essayer plutot ceci:
 
 ShellExecute(handle, Nil, Pchar('c:\monrepertoire\MonFichier.bat'), nil, Nil, SW_SHOWNORMAL);
 
Le principe n'est pas de lancer la fenetre DOS avec le fichier BAT en paramètre (je sait pas si ça marche, en fait), mais de lancer le fichier BAT lui mème (avec l'ordre par defaut, d'où le "nil" à la place du "open" )
 
--edit--
Et si la fenetre DOS se ferme avant que tu ne puisse lire un message d'erreur, ajoute "pause" à la fin de ton ficher BAT. Si'il ne demande pas de taper une touche, ça veut dire que pour une raison ou une autre, il n'a pas exécuté le .BAT
 

commande1
commande2
pause


Message édité par Zozol le 30-01-2006 à 20:59:03
Reply

Marsh Posté le 30-01-2006 à 20:56:09    

je vais essayer, Merci

Reply

Marsh Posté le 30-01-2006 à 21:00:48    

Rien de neuf sous le soleil !  
Pourtant j'arrive bien à lancer le client citrix en double cliquant sur le .bat.
Pourquoi la ligne de commande n'apparaît elle pas ds la fenêtre dos ??
 
si tu as un mail je peux t'envoyer des copies d'écran ?

Reply

Marsh Posté le 30-01-2006 à 21:07:22    

ça marche ! ;o))
Tu as bien vu !  
avec la commande suivante:
ShellExecute(Handle,nil,PChar('essai.bat'),nil, nil, SW_SHOWNORMAL);
 
Merci bc ! et chapeau pour ton expertise !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed