begin process at 2010 02 09 19:49:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > COMPOSANT CONSOLEIOHANDLER (ENVOYEZ UNE COMMANDE À UN EXECUTABLE "CONSOLE" WINDOWS OÙ DOS ET RECUPÉREZ LE RÉSULAT DANS UN TSTRINGS)

COMPOSANT CONSOLEIOHANDLER (ENVOYEZ UNE COMMANDE À UN EXECUTABLE "CONSOLE" WINDOWS OÙ DOS ET RECUPÉREZ LE RÉSULAT DANS UN TSTRINGS)


 Information sur la source

Note :
4 / 10 - par 2 personnes
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Classé sous :consolewin32, getconsoleouput, consoledos Niveau :Initié Date de création :03/04/2006 Date de mise à jour :17/11/2006 12:22:44 Vu / téléchargé :4 196 / 806

Auteur : shining

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Suite à une question du forum, j'ai créé ce petit composant qui permet l'envoie d'une commande à un executable de type "Console" Win32 où DOS et de pouvoir(c'est le but) recupéré la sortie dans un TStrings, certes il existe une méthode simple en recupérant la sortie depuis un fichier texte externe, néanmoins ce composant n'utilise pas cette technique et permet la récupération directement depuis le processus(Creation d'un PIPE)!!!

Source

  • une démo est comprise dans le zip
une démo est comprise dans le zip

 Conclusion

c'est censé fonctionner sur toutes les plate-forme grâce à la duplication des processus néanmoins je n'ai pu testé que sur WindowsXP.
suite à une exception lorsque j'ai voulu compiler un code asm en utilisant TASM, il s'avère que si le programme n'est pas un Win32 en mode Console XP plante, car en effet TASM est en pure DOS bien qui fonctionne sous windows il ne possède pas de header 'PE/NT', problème regler !!! avec l'utilisation de la commande "cmd", une petite routine se charge de la vérification du programme cible(si Console Win32 où DOS)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 avril 2006 11:43:59 :
Bug pour les programmes en pure DOS fixé(XP seulement) + quelques modifications
17 novembre 2006 12:22:44 :
Correction du bug de l'affichage de retour du TStrings + petite amélioration du fonctionnement du composant

 Sources du même auteur

Source avec Zip Source avec une capture SFCDELPHILITE(AVEC CETTE LIBRAIRIE VOUS POUVEZ CRÉER UNE APP...
Source avec Zip Source avec une capture SHININGDATABASE & VIRTUALDATABASE DEUX COMPOSANTS ORIENTÉS D...
Source avec Zip Source avec une capture FASTGRADIENT (METTEZ DES DÉGRADÉS DE COULEURS DANS VOS APPLI...
Source avec Zip COMPOSANT HASHPROTECTOR (PROTÉGEZ VOS APPLICATIONS CONTRE L...
Source avec Zip Source avec une capture COMPOSANT EMOTICONMANAGER (DONNEZ DE L'EMOTION À VOS APPLICA...

 Sources de la même categorie

Source avec Zip GÉNÉRATEUR DE JET DE DÉS par koriteki
Source avec Zip Source avec une capture LES FIBERS : DES THREADS NON PRÉEMPTÉS PAR LE SYSTÈME par Caribensila
Source avec Zip Source avec une capture UAC (USER ACCOUNT CONTROL) - EXÉCUTER UNE APPLICATION EN TAN... par ni69
BLOQUER LE TASKMGR SANS CLÉ DE REGISTRE par craftsystem
Source avec Zip UTILISER LES MESSAGES WINDOWS POUR GERER LE NOMBRE D'INSTANC... par lotfi213_b19

Commentaires et avis

Commentaire de flo160fr le 11/04/2006 17:23:12

Ca serai bien de pouvoir utiliser la totalité des commandes dos avec ton prog... et pas juste ouvrir des applications consoles...

Commentaire de mounjetado le 16/11/2006 10:50:50

bonjour,
j'ai fait une appli console pour prendre des mesures, et je voudrais maintenant récupérer mes mesures en temps réel pour les traiter. aussi ton prog m'intéresse, et je viens de télécharger ton source mais depuis j'essaie désespérément de le faire fonctionner... ou bien j'ai de sérieuses lacunes, ou alors ça manque d'infos! pour ma part, je crois qu'il y a des deux. je suis autodidacte, donc j'ignore si mon appli est viable et je ne connais pas les commandes dos en utilisant des lignes de commande... aurais-tu un tuto sur ce sujet?
merci

Commentaire de jace1975 le 16/11/2006 23:36:16

salut,

Commentaire un peu en retard , mais comme j'ecrit un petit interpréteur de commande en ce moment je me suis intéressé à ton code. franchement je te conseille et à ceux aussi qui liront le message par la suite d'utiliser la fonction ci-dessous qui marche vraiment bien car la tienne connait quelque limite génante , genre les rapports de pings incomplets, etc ... :

  procedure RunDosInMemo(DosApp: string; AMemo: Trichedit);
  const
    ReadBuffer = 2400;
  var
    Security: TSecurityAttributes;
    ReadPipe, WritePipe: THandle;
    start: TStartUpInfo;
    ProcessInfo: TProcessInformation;
    Buffer: Pchar;
    BytesRead: DWord;
    Apprunning: DWord;
  begin
    with Security do begin
        nlength := SizeOf(TSecurityAttributes);
        binherithandle := true;
        lpsecuritydescriptor := nil;
      end;
    if Createpipe(ReadPipe, WritePipe,
      @Security, 0) then begin
        Buffer := AllocMem(ReadBuffer + 1);
        FillChar(Start, Sizeof(Start), #0);
        start.cb := SizeOf(start);
        start.hStdOutput := WritePipe;
        start.hStdInput := ReadPipe;
        start.dwFlags := STARTF_USESTDHANDLES +
          STARTF_USESHOWWINDOW;
        start.wShowWindow := SW_HIDE;

        if CreateProcess(nil,
          PChar(DosApp),
          @Security,
          @Security,
          true,
          NORMAL_PRIORITY_CLASS,
          nil,
          nil,
          start,
          ProcessInfo)
          then
          begin
            repeat
              Apprunning := WaitForSingleObject
                (ProcessInfo.hProcess, 100);
              Application.ProcessMessages;
            until (Apprunning <> WAIT_TIMEOUT);
            repeat
              BytesRead := 0;
              ReadFile(ReadPipe, Buffer[0],
                ReadBuffer, BytesRead, nil);
              Buffer[BytesRead] := #0;
              OemToAnsi(Buffer, Buffer);
              AMemo.Text := AMemo.text + string(Buffer);
            until (BytesRead < ReadBuffer);
          end;
        FreeMem(Buffer);
        CloseHandle(ProcessInfo.hProcess);
        CloseHandle(ProcessInfo.hThread);
        CloseHandle(ReadPipe);
        CloseHandle(WritePipe);
      end;
  end;

tschussss.....

Commentaire de shining le 17/11/2006 12:37:11


Tout d'abord bonjour à tous et désolé pour le retard, en ce moment j'ai très peu de temps devant moi pour faire des mises à jour rapidement !!,

flo160fr bonne idée mais ce n'est pas le but 1er de ce composant !!

mounjetado en principe avec cette mise à jour tu ne devrais pas trop avoir de problème il suffit de suivre l'exemple de la demo, sinon il faudrait un peu plus d'explication quant à la commande envoyé ainsi que le paramètre et programme, j'ai cru comprendre que tu avais developper ta propre Application console ?!?, dans ce cas il ne faut pas oublié que la sortie de la fenêtre console se gère avec la fonction WriteLn() voir l'aide de Delphi

jace1975 le problème de l'affichage est résolu

@+

Commentaire de DRJEROME le 16/01/2010 09:17:05

Bonjour,

Un zéro pointé pour pompage d'un code ancien que l'on trouve sur tous les sites parlant de Delphi

runindos également se trouve dans un livre édition eyrolles de 2002

on le trouvait également avant 2001 traduit du langage C vers langage Delphi

donc.. un zéro pointé !

(merci d'enlever "initié" et de ne pas se citer comme créateur je rappelle que le plagia est condamnable et qu'il faut payer les droits d'auteur surtout quand ça été édité anciennement sous Copyright comme dans le cas présent)

Commentaire de DRJEROME le 16/01/2010 09:20:13 1/10

d'où ma note

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales