begin process at 2012 02 15 03:18:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Modules

 > 

Du Dos dans une listebox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Du Dos dans une listebox

mercredi 20 août 2003 à 17:13:12 | Du Dos dans une listebox

ToToLeMalin

Salut,

Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)

J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,

La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
AT

Si vous avez une solution, car moi non, !

Merci beaucoup en tout cas
mercredi 20 août 2003 à 18:09:05 | Re : Du Dos dans une listebox

DeathAngel

Hello,

Je pense avoir trouvé la méthode, mais il y a un bug.
Voilà déjà l'idée :

strCommande = "at > D:\test.log"
h = Shell(commande, vbHide)
i = FreeFile
Open "D:\test.log" For Input As #i
While Not EOF(i)
Line Input #i, strTemp
List1.AddItem strTemp
Wend
Close #i

tu lances un shell sur ta commande et tu stockes la sortie dans un fichier log
Puis tu ouvres le fichier log et tu mets chaque ligne du fichier dans ta liste.

Le bug que j'ai se produit sur le shell.
Ce qui est marrant, c'est que la même commande sous DOS fonctionne bien.
Je creuse le pbm, mais en tout cas, l'idée est là.

@peluche
DA

-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)
>
> J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
> Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,
>
> La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
> AT
>
> Si vous avez une solution, car moi non, !
>
> Merci beaucoup en tout cas
>
mercredi 20 août 2003 à 18:10:55 | Re : Du Dos dans une listebox

RicoNuch

Membre Club
Hello !
Je crois bien que j'ai une petite idée pour arriver à ça.
Tu peux faire exécuter un projet VB avec une ligne de commande. Je viens d'expérimenter. Pour cela, j'ai créé un simplissime exécutable nommé "Projet1.exe" qui ne contient que 3 lignes :



Private Sub Form_Load()
MsgBox Command
End Sub


Puis j'ai ouvert une fenêtre DOS et j'ai tapé :


C:\ Projet1.exe "Essai"


Et j'ai immédiatement vu la MessageBox contenant le texte "Essai" s'afficher.

Sur ce modèle, tu peux envoyer une ligne de commande à un exécutable qui te l'affichera de la façon dont tu lui demanderas.

RicoNuch

-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)
>
> J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
> Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,
>
> La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
> AT
>
> Si vous avez une solution, car moi non, !
>
> Merci beaucoup en tout cas
>
mercredi 20 août 2003 à 18:21:15 | Re : Du Dos dans une listebox

RicoNuch

Membre Club
Complément au message précédent :
- J'ai collé le fichier "Projet1.exe" dans le dossier racine.

- Dans la fenêtre DOS je n'ai tapé que :
Projet1.exe "Essai"

RicoNuch

-------------------------------
Réponse au message :
-------------------------------

> Hello !
> Je crois bien que j'ai une petite idée pour arriver à ça.
> Tu peux faire exécuter un projet VB avec une ligne de commande. Je viens d'expérimenter. Pour cela, j'ai créé un simplissime exécutable nommé "Projet1.exe" qui ne contient que 3 lignes :
>
>
>

> Private Sub Form_Load()
> MsgBox Command
> End Sub
>

>
> Puis j'ai ouvert une fenêtre DOS et j'ai tapé :
>
>

> C:\ Projet1.exe "Essai"
>

>
> Et j'ai immédiatement vu la MessageBox contenant le texte "Essai" s'afficher.
>
> Sur ce modèle, tu peux envoyer une ligne de commande à un exécutable qui te l'affichera de la façon dont tu lui demanderas.
>
> RicoNuch
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> >
> > Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)
> >
> > J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
> > Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,
> >
> > La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
> > AT
> >
> > Si vous avez une solution, car moi non, !
> >
> > Merci beaucoup en tout cas
> >
>
mercredi 20 août 2003 à 18:42:13 | Re : Du Dos dans une listebox

DeathAngel

Bon, je viens de faire un test, je crois que c'est bon :
Tu crée un fichier .BAT (disons toto.bat par ex) avec ces 2 lignes
@echo off
at > d:\test.log

puis, dans ton appli vb, tu fais:

strCommande = "d:\toto.bat"
h = Shell(strCommande, vbHide)
i = FreeFile
Open "D:\test.log" For Input As #i
While Not EOF(i)
Line Input #i, strTemp
List1.AddItem strTemp
Wend
Close #i

Là, plus de bug ^_^
Enfin, je sais toujours pas pourquoi ça plantait.
Si y'en a qui savent...

Dernière chose, la restitution des caractères n'est pas top
(accents et caractères spéciaux dans les choux)
Mais bon, en creusant un peu tu dois pouvoir t'en sortir ^_^

@peluche
DA

-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)
>
> J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
> Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,
>
> La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
> AT
>
> Si vous avez une solution, car moi non, !
>
> Merci beaucoup en tout cas
>
jeudi 21 août 2003 à 01:57:05 | Re : Du Dos dans une listebox

crenaud76

ATTENTION !! SI le At est un peu long a faire son job, ca va planter car tu vas accèder au ficheir sur ton Open alors que le BAT sera encore en train d'écrire dessus.
Si tu veux avoir les commande AT, utilise l'API NetScheduleJobEnum(), Ca va meme a travers le réseau si tu veux ...

Christophe R.


-------------------------------
Réponse au message :
-------------------------------

> Bon, je viens de faire un test, je crois que c'est bon :
> Tu crée un fichier .BAT (disons toto.bat par ex) avec ces 2 lignes
> @echo off
> at > d:\test.log
>
> puis, dans ton appli vb, tu fais:
>
> strCommande = "d:\toto.bat"
> h = Shell(strCommande, vbHide)
> i = FreeFile
> Open "D:\test.log" For Input As #i
> While Not EOF(i)
> Line Input #i, strTemp
> List1.AddItem strTemp
> Wend
> Close #i
>
> Là, plus de bug ^_^
> Enfin, je sais toujours pas pourquoi ça plantait.
> Si y'en a qui savent...
>
> Dernière chose, la restitution des caractères n'est pas top
> (accents et caractères spéciaux dans les choux)
> Mais bon, en creusant un peu tu dois pouvoir t'en sortir ^_^
>
> @peluche
> DA
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> >
> > Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)
> >
> > J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
> > Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,
> >
> > La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
> > AT
> >
> > Si vous avez une solution, car moi non, !
> >
> > Merci beaucoup en tout cas
> >
>
jeudi 21 août 2003 à 07:17:04 | Re : Du Dos dans une listebox

DeathAngel

Hello,

Bon, je suis matinal aujourd'hui ^_^
Christophe a trouvé la solution.
Mais dis moi christophe, tu l'as trouvée dans quelle API cette fonction, Win32 ?
Parce que je l'ai pas trouvée dans mon bouquin

Petite correction sur mon code (au cas où ça interresserait du monde :
Après l'appel au shell, il est en effet plus que conseillé de mettre un WaitForTerm (API32).
Petite faute de ma part (quand on veut aller trop vite ^_^)

@peluche, et bon dév'
DA

-------------------------------
Réponse au message :
-------------------------------

> ATTENTION !! SI le At est un peu long a faire son job, ca va planter car tu vas accèder au ficheir sur ton Open alors que le BAT sera encore en train d'écrire dessus.
> Si tu veux avoir les commande AT, utilise l'API NetScheduleJobEnum(), Ca va meme a travers le réseau si tu veux ...
>
> Christophe R.
jeudi 21 août 2003 à 09:38:14 | Re : Du Dos dans une listebox

crenaud76

Ben pour les API, je bosse avec les logiciel "APIViewer" et "API-Guide" : Une vrai mine d'or d'infos sur les API. Et avec MSDN bien sûr !! Avec ce trio d'enfer, tu trouves pour ainsi dire tout ce que tu veux sur les API. Je l'ai déja dit dans ce forum, mais je le redit :
NE TRAVAILLER JAMAIS AVEC LA VISIONNEUSE D'API FOURNIE AVEC VB !!!!!! LES DECLARATIONS QUI SONT DEDANS DATENT DE L'EPOQUE OU Win95 A ETE SORTIE, DONC IL Y A PLEIN DE MANQUE DEDANS ET DES TRUCS INCOMPATIBLES AVEC NOS Windows D'AUJOURD'HUI !!!!!!!!!!!!!!!
Christophe R.


-------------------------------
Réponse au message :
-------------------------------

> Hello,
>
> Bon, je suis matinal aujourd'hui ^_^
> Christophe a trouvé la solution.
> Mais dis moi christophe, tu l'as trouvée dans quelle API cette fonction, Win32 ?
> Parce que je l'ai pas trouvée dans mon bouquin
>
> Petite correction sur mon code (au cas où ça interresserait du monde :
> Après l'appel au shell, il est en effet plus que conseillé de mettre un WaitForTerm (API32).
> Petite faute de ma part (quand on veut aller trop vite ^_^)
>
> @peluche, et bon dév'
> DA
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > ATTENTION !! SI le At est un peu long a faire son job, ca va planter car tu vas accèder au ficheir sur ton Open alors que le BAT sera encore en train d'écrire dessus.
> > Si tu veux avoir les commande AT, utilise l'API NetScheduleJobEnum(), Ca va meme a travers le réseau si tu veux ...
> >
> > Christophe R.
lundi 1 septembre 2003 à 23:33:13 | Re : Du Dos dans une listebox

Proger

Il faut créer un pipe entre ton programme et la fenêtre DOS. Je sais pas si tu trouvera un code source sur le net, alors je te file ce dont je me suis servi dans un prog (sources non publié):

API :
CreatePipe() pour créer un pipe "universel"
CreateProcess() pour exécuter ton programme dos, avec ligne de commande, et utilisation du pipe !
demo : CreateProcess(EXEfile, EXEcommands, sec1, sec2, True, pclass, 0&, EXEbaseDir, sinfo, pinfo)
(sec1,sec2,pclass,sinfo,pinfo sont des Type préçis)

Tu attend que le process (le programme dos) s'arrête, par exemple en appelant régulièrement le process :
GetProcessVersion()
demo : t = GetProcessVersion(pinfo.dwProcessId) , si t = 0 alors le process est terminé.

Ensuite ya plus qu'a lire le contenu du pipe :
PeekNamedPipe()
tu obtiens une jolie string, avec laquelle tu peux faire ce que tu veux.

-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Si un developpeur qui passe par la détient la solution, il est le bienvenu et qu'il n'hésite pas a gribouiller quelques lignes d'explication, IoI, ;-)
>
> J'explique, je voudrai lancer une commande Dos, AT, qui me liste les taches planifiées, mais je voudrai récuperer le resultat de cette commande pour l'afficher dans une liste box,
> Si cela n'est pas faisable, peut on ouvrir une fenetre Dos au sein d'une feuille VB,
>
> La finalité est l'affichage sur une feuille VB dans un controle ou une listeBox ou autre... du resultat de la commande Dos:
> AT
>
> Si vous avez une solution, car moi non, !
>
> Merci beaucoup en tout cas
>


Cette discussion est classée dans : solution, commande, at, listebox, dos


Répondre à ce message

Sujets en rapport avec ce message

Récupérer le résultat d'une commande DOS [ par JFF ] Comment récuperer le résultat d'une commande DOS. Avec la commande Shell, je ne récupère rien (ex: shell("dir c:>liste.txt")).Merci d'avance.JFF. Commande DOS [ par cyril ] Dans mon application, j'ai besoin d'exécuter des commande DOS (SET particulièrementavant de lancer une application). Comment est-il possible de les fa simuler la commande Xcopy du DOS [ par Jack ] Salut!j'aimerais non pas utiliser mais refaire la fonction xcopy du DOS (celle qui permet d'ajouter entre eux deux fichier par ex xcopy 1.zip+2.zip mo VB- Commande Dos [ par JackSeB ] Salut à tous...J'ai un petit problème et j'espère que vous allez pouvoir m'aider..Depuis une appli VB (en exe) je veux lancer un traitement sous dos ( Ms-Dos [ par ataeallah ] Bonjour,D'abords merci pour les développeurs qui font tout leur possible pour aide les débutants.Comment je peut lance une commande Dos à partir de VB Exécution d'une commande DOS? [ par Alain ] Je voudrais exécité une commande DOS qui cré un fichier text ma comman de est la suivante Shell "arp -a > fichier.txt", mais cela ne fonctionne pas. M Aide pour commande ms-dos [ par Cheez-Wizz ] comment faire pour faire qqch du genreje shell dequoishell ("c:\bla.exe") qui est un apli ms-dospi la sa rentre d commandes automatiques genredir (ent commande AT [ par mozllo ] Bonjour, je précise je débute , débute...j'essaie d'inclure dans une base de données Access une numérotation automatique via modemmais mon application lancement pgm VB via commande AT [ par cyd ] j'ai créé un pgm qui envoi un mail de manière automatique.il fonctionne par double clic ou via la ligne de commandeDès que je le programme en commande Command Dos [ par Vincentsoft ] SalutVoilà, lorsque je veux executer une commande DOS du style ping depuis vb, je fais par exemple:shell("ma_comande")et ça marche. Mais le problème,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,388 sec (4)

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