J'ai un petit soucis et je ne m'en sors pas !
Je dois lancer un executable (type DOS) win 32 qui fonctionne par commande..
en gros quand je le lance, j'ai une fenetre type DOS avec un prompt ou je
dois taper connect puis entree puis un login etc...
Je voudrais faire une interface plus intuitive sous windev
J'ai essayé avec DDELance , la fenetre se lance bien, mais je n'arrive pas à
controler cette fenetre, c'est à dire lui envoyer mes information et
recuperer le retour...
j'ai essayé avec DDEconnecte ou quelques API, mais je n'ai pas du trouver
les bonnes...
Dois-je essayer de recuperer le handle pour la contrôler ou y-a-t-il
d'autres solutions
De plus, je voudrais savoir comment eviter que cette fenetre "type DOS"
s'affiche..est-ce possible de l'integrer dans le projet ?
Merci d'avance pour votre aide ...
cedric
Pour le retour, tu peux essayer la redirection dans un fichier temporaire en
ajoutant ">resultat.xt" comme parametre de l'appli DOS . Là aussi, c'est pas
garanti.
Par contre, ce qui marche très bien, c'est d'éviter la fenetre DOS (invisible):
Au lieu de DDELANCE essaye :
LanceAppliCachee(<nom_appli>,<parametres>)
PROCEDURE LanceAppliCachee(NomFichier,parametre="")
hWnd est entier //Handle fenêtre
lpOperation est une chaîne ASCIIZ sur 200 = "open" // appli WIN32
lpFile est une chaîne ASCIIZ sur 200 = NomFichier
lpParameters est une chaîne ASCIIZ sur 200 = parametre
lpDirectory est une chaîne ASCIIZ sur 200 =
fCheminCourt(fExtraitChemin(NomFichier,fRépertoire)) // pour les applis DOS
essentiellement
nShowCmd est un entier = 0 // appli caché
hWnd = Handle() //Récupère le handle
RENVOYER AppelDLL32("Shell32", "ShellExecuteA", hWnd, &lpOperation,&lpFile,
&lpParameters, &lpDirectory, nShowCmd)
--------message d'origine-------
Bonjour à tous !
cedric
--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/
"Fabien FRESSE" <nospam-...@altern.org> a écrit dans le message de news:
200271-15...@foorum.com...
cedric P
"Fabien FRESSE" <nospam-...@altern.org> a écrit dans le message de news:
200271-15...@foorum.com...
>
> Merci pour ton aide..
> alors la fonction lanceapplicachée marche nickel !! :o)
> Par contre, impossible de faire fonctionner le >result.txt
> et donc de tester l'envoietouche car je n'ai pas le handle...
> De toute façon, quand la fenetre est visible, la fonction DDELance
> fonctionne mais aps la fonction DDEConnecte
> De m^me pour l'envoitouche ! :o(
> je ne sais donc plus comment envoyer des ordres à cette fonction ni
> comment recuperer les infos ! :o(
>
> cedric P
Bonjour,
Pur manipuler les fenêtres non Windev il faut connaître leur handle.
Peut être une piste avec la fonction SysFenHandle()...
Mais il faut pour celà connaître le titre de la fenêtre concernée et
surtout effectuer une petite temporisation entre le lancement de ton appli
secondaire et la récupération du handle.
Pascal
"Pascal Héraud" <phe...@nospam.sully-group.fr> a écrit dans le message de
news: Xns923F65E6...@213.228.0.32...
Cédric
"Gérard Menvussa" <gerard....@ifrance.com> a écrit dans le message de
news: 3d22eeeb$0$503$626a...@news.free.fr...
PROCEDURE LanceAppliCachee(NomFichier,parametre="")
hWnd est entier //Handle fenêtre
lpOperation est une chaîne ASCIIZ sur 200 = "open" // appli WIN32
lpFile est une chaîne ASCIIZ sur 200 = NomFichier
lpParameters est une chaîne ASCIIZ sur 200 //parametre
lpDirectory est une chaîne ASCIIZ sur 200 =
fCheminCourt(fExtraitChemin(NomFichier,fRépertoire)) // pour les applis
DOS essentiellement
nShowCmd est un entier =0 // appli caché
hWnd = Handle() //Récupère le handle
RENVOYER AppelDLL32("Shell32", "ShellExecuteA", hWnd, &lpOperation,&lpFile,
&lpParameters, &lpDirectory, nShowCmd)
J'ai essayé avec lpParameters="test.txt" ou lpParameters = " >
test.txt" rien ne marche
Par contre sous dos, la fonction nomfichier.exe > test.txt marche bien
Pas reussi à passer le bon paramètre !
Cédric P
"cedric P" <cho...@wanadoo.fr> a écrit dans le message de news:
afq31r$n0b$1...@wanadoo.fr...
lpCmdLine est une chaîne
nCmdShow est un entier
lpCmdLine = "ping wanadoo.fr >ping.txt"
nCmdShow = 1
RENVOYER AppelDLL32("kernel32","WinExec", lpCmdLine, nCmdShow)
Le fichier est vide et le message affiché (quand j'ai réussi à le lire!) dit:
parametre >ping.txt invalide. Sans cette redirection, ça fonctionne...mais
insufisant.
Il semblerait que la redirection ne fonctionne pas dans ce cas.
Ce que je cherche à faire est comme l'option 'démarrer/executer'. Savez vous
qu'elle est la méthode utilisée ? (quelle API?)
>J'ai enfin reussi à lancer la fenetre en cachée ET à recupérer le handle ET
>à lui envoyer des touches !!!
>Pour envoyer les touche il faut que je lui fasse un multitache(100) juste
>avant !!! (je ne sais aps pourquoi , sinon, marche pas !)
>grosse satisfaction ! :o)
>Par contre je n'ai aps reussi à executer cette fenetre de manière a ce
>qu'elle redirige ça sous un .txt
>avec la fonction :
J'ai le meme souci (voir post précédent) meme avec l'API winexec. Il semmblerait
que les fonctions de redirection ne soit pas possible avec ces APIs.
Pourtant cela doit etre possible car ca fonctionne avec le menu
demarrer/executer.
Quelqu'un sait-il comment fonctionne (quel exe, API ?) l'option
demarrer/executer ?
Fabien