begin process at 2012 02 11 15:18:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > EXÉCUTER TOUTES LES COMMANDES DOS ET AUTRES FACILEMENT ET SANS PROBLÈMES

EXÉCUTER TOUTES LES COMMANDES DOS ET AUTRES FACILEMENT ET SANS PROBLÈMES


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Classé sous :dos, interpréteur, shellexecute, commande Niveau :Débutant Date de création :04/11/2005 Vu / téléchargé :53 418 / 2 395

Auteur : cirec

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

 Description

Cliquez pour voir la capture en taille normale
Je poste cette source en réponse à des questions posées sur le forum

Utiliser les commandes Dos sans problèmes avec ShellExecute de l'unité ShellApi
et l'interpreteur de commande CMD.exe

  Petites explications:
  Les Switches /c : Exécute la ligne de commande et referme l'interpréteur de Commande
              /k : Exécute la ligne de commande et attend que l'utilisateur referme
              la fenêtre dos

  Il y d'autres switchs pour cela allez dans l'aide de Windows et tapez CMD

  Dans le TEdit vous pouvez lancer:
              Une commande dos simple Ex: Dir c:\*.*
              Une application avec paramètres Ex: Notepad.exe  Teste.txt
              Plusieurs commandes mais il faut les mettre entre guillemets "" et
              Séparer les commandes avec && Ex:
              "Copy c:\monfichier.txt  E:\Monfichier&&del c:\Monfichier.txt"
              Démarrer une application attendre qu'elle soit finie et en exécuter
              une deuxième Ex:
              "Start /wait %systemroot%\System32\calc.exe&&Dir c:\*.*"

  La même ligne de commande sous Dos donnerait ceci :
              cmd.exe /k "start /wait %systemroot%\System32\calc.exe&&Dir c:\*.*"

  Et dans Delphi :
             ShellExecute(Handle, Nil, 'CMD' ,
             '/k "start /wait %systemroot%\System32\calc.exe&&Dir c:\*.*"', Nil ,
             SW_HIDE);

  ATTENTION si vous Exécutez une ligne de commande avec comme switch /k et
            avec l'option SW_HIDE  dans ce cas la fenêtre est certes invisible mais elle
            n'en est pas pour autant fermer et après une série de commande de ce type
            vous aurez autant de Processus CMD Actif (ce qui à terme va saturer la mémoire).
            C'est pour cette raison que j'ai mis dans la Procédure RadioButton1Click une boucle
            qui vous évitera ce désagrément en forcent (si /k est sélectionner)
            le mode SW_SHOWNORMAL

            Dans vos applications  si vous devez utiliser /k avec SW_HIDE,
            je vous conseil donc d'ajouter '&&Exit' à votre ligne de commande
            et de la mettre entre guillemets "" comme ceci :
            "Dir c:\*.*&&Exit"



 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


 Sources du même auteur

Source avec Zip Source avec une capture EXEMPLE DE MANUAL DOCKING OU COMMENT DONNER DE LA SOUPLESSE ...
Source avec Zip Source avec une capture BITMAP 32BITS INTÉGRÉ À LA VCL (TIMAGE, TPICTURE, TBITMAP, T...
Source avec Zip Source avec une capture [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS U...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API VERSIO...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API

 Sources de la même categorie

Source avec Zip DICTIONNAIRE WORD DANS UN RICHEDIT par H60
Source avec Zip TRIER DU GREC DANS UNE APPLI EN CODE LOCAL FRANÇAIS. par fricot
Source avec Zip Source avec une capture INTÉGRATION DE PAGE HTML DANS LES RESSOURCES D'UNE DLL par christophe75018
FONCTION DE CONVERSION DE MILLISECONDES EN HH:MM:SS:MMM par vyseR
Source avec Zip Source avec une capture UTILISER UNE DLL INCLUSE EN RESSOURCES par Bacterius

 Sources en rapport avec celle ci

Source avec Zip LE CRIME PARFAIT par Caribensila
Source avec Zip Source avec une capture UPXHELPER V1.1.1 par Christophe67
Source avec Zip COMMANDS MANAGER - BESOIN DE COMMANDES DANS VOS PROGRAMMES T... par f0xi
Source avec Zip GESTION DES VERSIONS D'UNE APPLICATION par esu
Source avec Zip EXÉCUTER UNE COMMANDE DOS SANS QUITTER SON APPLICATION SOUS ... par japee

Commentaires et avis

Commentaire de Nicolas30ans le 05/11/2005 05:46:51

Merci pour ce code mets une question quel avantage pour moi pour le netstat ou nbtstat -A peut tu me donné plus information.

Commentaire de cirec le 05/11/2005 14:30:21 administrateur CS

Bonjour Nicolas30ans, :-)

J’ai tester avec netstat et pas de problème ça fonctionne très bien.
Quel est ton problème ?

@+
Cirec

Commentaire de armetiz le 16/11/2005 09:49:32

+1 pour ton code, c'est d'la balle !

Commentaire de Idefix57 le 04/05/2006 17:08:10

Tres utile a savoir .

Merci

Idefix

Commentaire de totalsigne le 22/03/2007 16:09:22

merci pour ton code,
voila jai un problem; jai une application developper sour dos avec clipper5.33 qui marche tree bien mai elle ne reconai que lpt1; je desire faire un programme en delphi qui fai appel a cette application juste les etat je les tansforme sur usb merci

Commentaire de h4mz4 le 04/03/2009 01:48:23

merci pour votre source ! ce que jecherche de puit peut , ce de ouvrire un fenetre dos comme le fait netcat mais sans utilisez les port je veut dir d'une application delphi a une fenetre dos en mode interactive si tu vois ce que je veut dir :-)
(je tape un command sur mon aplli. et je vois la repanse sur une fenetre dos, et je tape encore ,et encore sans que la fenetre dos ce ferme, et que mes commande s'execute sur la meme fenetre dos!)
bonne nuit !

Commentaire de skiso le 26/04/2010 12:14:17

moi jai utiliser cette fonction pour excuter mon programe sous dos :
CreateProcess(nil,PChar('cmd.exe /k go.exe '),nil,nil,True,0,nil,nil,Si,Pi);

et cette fonction pour attendre le processus pour me dire que c ok.(par ce que ce programme prend quelque second pour finir son traitement (5 seconds a peut pret).

WaitForSingleObject(pi.hProcess,INFINITE);

je veux fermer la feneter dos après que le programme me dis que c ok.( fin de processus).

merci

Commentaire de cirec le 26/04/2010 13:53:14 administrateur CS

réponse ici:
http://www.delphifr.com/infomsg.aspx?ID=1430604

Commentaire de jihelb le 04/05/2010 11:06:07

Salut Cirec,
Un grand MERCI pour ce post que j'avais malencontreusement zappé. (et merci à Caribensila de me l'avoir fait connaitre).
Sinon il m'aurait éviter bien des recherches et essais infructueux !!!
Je mets un 10/10.
Cordialement,
JiHelB

Commentaire de jihelb le 04/05/2010 11:06:54 10/10

Oups... j'avais oublié la note

Commentaire de PhilLU le 26/04/2011 21:26:53

Salut,
Je suis confronté à deux problème:
Quand j'utilise la commande suivante:
  aCmdLine := PChar('start /wait %systemroot%\System32\ipconfig /all>c:\ipconf.txt');
   ShellExecute(Handle, nil, 'CMD', aCmdLine, nil, sw_Show);
le fichier est bien créé mais est vide!!!
D'autre part quand j'utilise la commande suivante:
  WinExec(PChar('COMMAND.COM ipconfig&&Exit>c:\ipconf.txt'  ), SW_HIDE   );
le fichier est bien créé et contient les infos souhaitées, mais est inaccessible car reste "utilisé par un autre processus"!!!
Comme vous voyez, j'ai essayé de placer le &&exit à plusieurs endroits, mais sans succes!!!
Comment résoudre ces deux "bugs"???
Merci pour vos conseils!!!
PhilLu

Commentaire de cirec le 26/04/2011 21:51:57 administrateur CS

Salut,

essayes comme ceci:

var
  aCmdLine: PChar;
begin
  aCmdLine := PChar('/c "%systemroot%\System32\ipconfig.exe /all>c:\ipconf.txt"');
  ShellExecute(Handle, nil, 'CMD', aCmdLine, nil, sw_hide);
end;

Commentaire de cirec le 26/04/2011 22:21:22 administrateur CS

pour le deuxième bug, tu crées un fichier nommé "IPConf.bat" à la racine de ton application et tu complètes comme suit:

@echo off
ipconfig.exe /all>c:\ipconf.txt
exit

et dans Delphi tu fais :
  WinExec('IPConf.bat', SW_HIDE);

Commentaire de PhilLU le 26/04/2011 22:37:23

Salut Cirec,
pour la réponse ShellExecute, ça marche !!! SUPER!!!
Je teste la 2ème solution asap maie je ne souhaite pas de fichiers liés donc :-(
Pas possible sans le fichier .bat??? Comment libérer le "lien" avec ipconfig après l'appel?
Encore merci!!!
PhilLu

Commentaire de PhilLU le 27/04/2011 01:54:42

par contre quand j'ajoute:
  Memo1.Lines.LoadFromFile('c:\ipconf.txt');// j'ai ajouté un timer de 3 sec avant cette action
    Efface:=DeleteFile('c:\ipconf.txt');//efface est boolean
    Label1.Caption:=BooltoStr(Efface);
le memo est ok mais ensuite je reçois un message 'fichier introuvable' pour l'effacer???
Strange!!!

Commentaire de cirec le 27/04/2011 02:10:07 administrateur CS

sans fichier == ShellExecute
la version avec WinExec('Command.com ...
ne fonctionne pas (WinExec est déprécié)
Command.com n'est pas prévu pour recevoir les commandes en arguments ... il se contente de démarrer l'interpréteur.

D'ailleurs dans l'exemle que tu donnes ce n'est pas IPConfig qui est démarré mais une autre appli (par erreur) et c'est elle qui bloque le fichier "IPConf.txt"

pourquoi vouloir utiliser WinExec ???

sinon, pour supprimer le batch regarde ici:
http://www.delphifr.com/codes/CRIME-PARFAIT_51723.aspx    

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

shellexecute et commande print sous DOS [ par fredy24 ] je cherche comment exécuter la commande PRINT sous DOS en passant par un shellexecute.Merci d'avance pour les réponses. Commande DOS dans une page web [ par jeremymolla1 ] Bonjour, J'aimerais savoir s'il était possible de créer un code qui enclancherait une commande DOS sur l'ordinateur du visiteur. Par exemple Commande DOS dans une page web [ par jeremymolla1 ] Bonjour, je voudrais savoir s'il était possible de mettre une commande DOS dans une page web et si oui comment ????? Net use [ par jmp77 ] Hello, Est ce que quelqu'un saurait comment faire la meme chose que cette commande dos : net use LPT1 \\Serveur1\Printer12 /persistent:yes Cette com Parametre de ShellExecute [ par armetiz ] J'essai d'utiliser la commade ShellExecute avec divers parametre... mais, a chaque fois, seul la fenetre MS-Dos s'ouvre, mais, aucune action n'est pre détourner entree et sortie standart du dos [ par dk2089 ] j'aimerais ecrire un programme qui ferait office d'un espece de shell a la place du tradutionnel cmd.exe, et que je pourrais integrer dans mon applica deconnection d'un lecteur réseau [ par yvessimon ] Bonjour,Avec une commande DOS je me connecte sur un ordinateur lui même sur le réseau : ouverture de la liaison.Ce qui me permet de faire des transfer Shellexecute [ par cincap ] Bonjour à tous,J'ai une commande pour exécuter un fichier qui se trouve dans un "TFilelistBox" (nommé testfile) seulement cette commande utilise un la exectution commande C sour Dos [ par DDHL ] bonjour,je dois réaliser un batch pour lancer le logiciel winaudit et surtout lancer la commande audit et a la fin de celui ci enregistrer un log ds u recuperer la sortie d'une commande dos. [ par Oamiotte ] bonjourj'ai fait un applicatif pour lister les connexions terminal server ouvertes et les fermer toutes. pour obtenir la liste j'utilise la commande c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,749 sec (4)

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