ShellExecute probleme

Signaler
Messages postés
155
Date d'inscription
jeudi 6 décembre 2001
Statut
Membre
Dernière intervention
19 avril 2010
-
Messages postés
2
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
1 septembre 2008
-
voila je voulais faire un pti prog simpa pour envoyer des net send mais j'ai un probleme:

si je fais ça, sa marche :
-----------------------------
ShellExecute(0, nil, 'C:\WINDOWS\system32\cmd.exe','c/ net send 10.0.0.3 salut', nil, SW_HIDE);

mais si je fais sa :
---------------------
ShellExecute(0, nil, 'C:\WINDOWS\system32\cmd.exe', '/c net send '+edit1.text+' '+edit2.text, nil, SW_SHOWNORMAL);

sachant que :
o edit1.text = '10.0.0.3' o edit2.text 'salut'
Pourquoi cela ne marche t'il pas !

5 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Pour ces arguments, ShellExecute attend des PChar. Il suffit de faire :
ShellExecute(0, nil, 'C:\WINDOWS\system32\cmd.exe', PChar('/c net send '+edit1.text+' '+edit2.text), nil, SW_SHOWNORMAL);

May Delphi be with you
Messages postés
155
Date d'inscription
jeudi 6 décembre 2001
Statut
Membre
Dernière intervention
19 avril 2010

merci de ta reponse rapide :)
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
- A mon avis meme pas besoin d'appeler la console cmd avant de faire ton net send, elle va se lencer toute seule.

- N'oublie pas d'ajouter "ShellApi" à la clause uses pour avoir accès au API.

- Caster tes arguments String en PChar = > Pchar( 'Chaine' );

Ex : ShellExecute(Self.Handle, PChar('open'), PChar( 'net send' + edit1.Text ), Pchar( edit2.Text ) , nil, SW_SHOWNORMAL );

(j'ai pas testé alors peut etre que çà marche pas mais il me semble que c'est comme çà que çà marche !)

Et si tu veux cacher la console au moment de l'execution pour eviter de voir une fenetre ms-dos aparaitre ou un sintillement tu peux changer le " SW_SHOWNORMAL" par un "SW_HIDE" (va voir la MSDN pour plus d'info => http://msdn.microsoft.com/)
-ElGuevel-
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
dsl j'ai fait une erreur ...

Faut pas faire : ShellExecute(Self.Handle, PChar('open'), PChar( 'net send' + edit1.Text ), Pchar( edit2.Text ) , nil, SW_SHOWNORMAL );

Mais : ShellExecute(Self.Handle, 'open', PChar( 'net send' + edit1.Text ), Pchar( edit2.Text ) , nil, SW_SHOWNORMAL );

C'est tout
-ElGuevel-
Messages postés
2
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
1 septembre 2008

Slt
ex:
var
P:string;
begin
P:=(/c net send+edit1.Text+edit2.Text);
ShellExecute(Handle, 'open', 'cmd.exe',PChar(P),0, SW_SHOWNORMAL);

____