Laisse tomber, j'ai du faire le boulot je vérifierais (c'est sur l'output du WaitEvent et non celui retourné par la méthode)
En tout cas un grand merci !
(je pensais avoir mis résolu depuis la...
Type: Messages; Utilisateur: LaurentC33
Laisse tomber, j'ai du faire le boulot je vérifierais (c'est sur l'output du WaitEvent et non celui retourné par la méthode)
En tout cas un grand merci !
(je pensais avoir mis résolu depuis la...
Bonjour Shai et bon début de semaine.
Moins tordue ta solution :D
Tout marche nickel, sauf dans le code d'epcWindows :
ReadPipes() :
WaitEvent(Parent, string(DeltaOutputText),...
J'ai rajouté une méthode pour connaître quand le processus est terminé :
unit threadEpcWindows;
{
Classe de contrôle des méthodes de l'unité epcWindows
Bonjour Shai !
Merci beaucoup, OutputText me renvoi bien le retour, c'est nickel !
C'est ma classe de thread qui déconne maintenant à la ligne :
...
Impossible de faire fonctionner...Je ne comprends pas.
Voici le projet d'exemple
SI jamais tu as le temps d'y jeter un coup d'oeil (sans vouloir abuser) sinon c'est vraiment pas grave, je...
Bonjour Shai ;)
Output+Error, t'inquiètes, c'est juste pour tester ;)
Pour l'instant
Result := CreateProcess(nil, PChar(CmdLine), @SecurityAttr, @SecurityAttr, True, 0, nil,...
Désolé je n'avais pas vu ton message !
Il faut que je fasse la réciprocité de NativeUInt(Self) dans WaitEvent, c'est bien ça ?
Diantre compliqué tout cela :D
Hum, rien en s’exécute, bizarre...
Le form qui fait office de test :
unit Unit7;
interface
uses
OKi j'envoi le Self.Handle donc
Vais essayer de faire tourner tout cela ;)
Merci beaucoup je te tiens au courant !
CallCmd(prvtDirectory, 'cmd.exe', '/C '+prvtCommand, ExitCode, OutputText, ErrorText, 100, Self, _TThreadDosCommandWaitEvent);
Self ne passe pas sous XE5 :(
Je fait une classe pour piloter tes méthodes dans un thread :
unit threadEpcWindows;
{
Classe de contrôle des méthodes de l'unité epcWindows
Ex :
Merci mais désolé, j'ai encore du mal à tout assimiler :D
1 - Tu me dis que "_TThreadDosCommandWaitEvent" doit être déclaré avant, tu veux dire que dans "implementation" elle doit être...
Encore un truc :(
Je n'arrive pas à trouver comment déclarer le pointeur de la méthode WaitEvent...
J'ai changé la déclaration, le compilateur est heureux ;)
hReadPipeInput, hWritePipeInput: THandle;
hReadPipeOutput, hWritePipeOutput: THandle;
hReadPipeError, hWritePipeError: THandle;
Juste un petit problème.
Le compilateur me sort :
E2033 Les types des paramètres VAR originaux et formels doivent être identiques
aux lignes
Très ingénieux le coup du var AbortProcess: Boolean :D
De rien, surtout merci à toi :D
Merci pour tout cela ;)
En fait, le timeout c'est plutôt pour l'inverse, j'ai une commande qui prends énormément de temps entre deux retour, et je ne veux pas que le thread ce ferme. Donc dans ta...
Merci pour ces précisions :D
Je vais utiliser ta méthode. Merci de prendre du temps pour m'expliquer tout cela, je ne suis pas un grand guerrier sous delphi (ça fait juste 3 mois :D)
Il faut que je rajoute un SendMessage dans la méthode stopConsole, pour fermer le cmd.exe.
Donc il faut que je récupère le Handle à partir de CreateProcessW, mais je coince un peu ...
procedure...
Nouvelle version mais rien de mieux :(
unit DosCommandUnit;
interface
uses Vcl.StdCtrls, Windows, System.Classes, Forms, Vcl.ComCtrls;
Bonjour Shai.
Laisse tomber l'histoire de session DOS, ce n'est plus necessaire.
J'ai essayé ton code, mais assez complexe :D
J'ai trouvé cela par contre :...
Merci Shai une fois de plus ;)
Je vais tester ça !
Bonjour à tous,
J'ai besoin pour mon appli de commander un api utilisable uniquement en DOS.
Pour cela j'essayer de créer une classe avec comme argument du constructeur mon Tmemo, et ensuite a...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.