Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème API FinWindows

9 réponses
Avatar
LE TROLL
Bonjour,

Marche pas mon truc, ça lance bien ce que je veux, mais hélas, "autant"
de fois que je le veux!!!

J'ai mis ça dans le programme appelant, je pense que c'est là qu'il faut
le mettre, il s'agit de l'appel depuis un exe d'un autre exe dans le même
répertoire prédéfini dans le load par app.path (dir, drive, etc...) ?
Où est l'erreur svp :o) ???

Sub m_aide_Click()
Dim lResult As Long
Dim rep
lResult = FindWindow(App.Path & "tarot4aide.exe", "")
If lResult = 0 Then rep = Shell("tarot4aide.exe", 1)
End Sub


--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------

9 réponses

Avatar
Driss HANIB
salut LE TROLL

je croyais que tu n'aimais pas les API..:o))


Bon je ne connais pas formcément bien les API, mais j'avais compris que dans
la fonction FindWindows, il fallait mettre seulement le nom de ton prog ou
plutot le caption de ta feuille recherchée..
Donc , pour moi le App.path est de trop car il n'apparait pas dans la
caption de ta feuille( à moins que tu l'affiche dedans bien sur)
Sans doute d'autres vont confimer ou non mes dires..

Driss

"LE TROLL" <le a écrit dans le message de
news:
Bonjour,

Marche pas mon truc, ça lance bien ce que je veux, mais hélas,


"autant"
de fois que je le veux!!!

J'ai mis ça dans le programme appelant, je pense que c'est là qu'il


faut
le mettre, il s'agit de l'appel depuis un exe d'un autre exe dans le même
répertoire prédéfini dans le load par app.path (dir, drive, etc...) ?
Où est l'erreur svp :o) ???

Sub m_aide_Click()
Dim lResult As Long
Dim rep
lResult = FindWindow(App.Path & "tarot4aide.exe", "")
If lResult = 0 Then rep = Shell("tarot4aide.exe", 1)
End Sub


--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------




Avatar
Vincent Guichard
LE TROLL a écrit :
Bonjour,

Marche pas mon truc, ça lance bien ce que je veux, mais hélas, "autant"
de fois que je le veux!!!

J'ai mis ça dans le programme appelant, je pense que c'est là qu'il faut
le mettre, il s'agit de l'appel depuis un exe d'un autre exe dans le même
répertoire prédéfini dans le load par app.path (dir, drive, etc...) ?
Où est l'erreur svp :o) ???

Sub m_aide_Click()
Dim lResult As Long
Dim rep
lResult = FindWindow(App.Path & "tarot4aide.exe", "")
If lResult = 0 Then rep = Shell("tarot4aide.exe", 1)
End Sub





Je pense que tu fais une erreur sur l'utilisation de FindWindow.
A mon avis un FindWindow("", "Titre de l'application") serait plus
probant. (avec "Titre de l'application" à modifier de façon adéquate,
bien sûr).


Vincent Guichard
Avatar
LE TROLL
Bonjour cher ami :o)

Non je n'aime pas les API, la preuve ! C'est mal documenté, quand ça
l'est, ça ne se comprend pas facilement car les constantes sont en anglais,
ce qui complique encore la lecture, "moi" je fais du vBASIQUE, et dans le
basic il n'y a pas de fonctions, que des procédures, or les API sont des
fonction par leur utilisation, ce qui me complique encore la compréhension,
et ce n'est pas du VB, je les utilise quand on ne peut faire autrement...
D'ailleurs, comme déjà dit, il y a des gus qui parfois prennent un éditeur
VB et écrivent que des API, tout en API, là ça devient une dérive totale, en
effet, ce n'est plus du VB, c'est en assembleur 32 bits que l'on programme
ainsi, juste les directives spécifiques à l'ASM + les API, alors ceux qui
font ça se sont trompés d'éditeur et de langage...

Pour te répondre, en te remerciant d'ailleurs, app.path ne fait rien à
l'affaire, ça fonctionne quand même sans, car depuis j'ai testé... J'aurais
dû poser ma question dans le forum assembleur, c'est eux les plus habitués
aux API... Ben alors j'ai laissé tomber, je suis passé aux variables
d'environnement, mais idem, comme je dois y toucher un fois tous les 5 ans,
je maîtrise très mal, ça coince, alors je vais faire ça en créant un
fichier, ce sera encore le mieux et sans API !

Merci néanmoins, et dis-moi, joues-tu au TAROT à jouer, sais-tu y jouer,
car je cherche des testeurs pour celui que je viens d'écrire et qui
fonctionne bien mais nécessite quelques réglages encore ???

A bientôt.

Cordialement.

Joe.

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Driss HANIB" a écrit dans le message de news:

salut LE TROLL

je croyais que tu n'aimais pas les API..:o))


Bon je ne connais pas formcément bien les API, mais j'avais compris que
dans
la fonction FindWindows, il fallait mettre seulement le nom de ton prog ou
plutot le caption de ta feuille recherchée..
Donc , pour moi le App.path est de trop car il n'apparait pas dans la
caption de ta feuille( à moins que tu l'affiche dedans bien sur)
Sans doute d'autres vont confimer ou non mes dires..

Driss

"LE TROLL" <le a écrit dans le message de
news:
Bonjour,

Marche pas mon truc, ça lance bien ce que je veux, mais hélas,


"autant"
de fois que je le veux!!!

J'ai mis ça dans le programme appelant, je pense que c'est là qu'il


faut
le mettre, il s'agit de l'appel depuis un exe d'un autre exe dans le même
répertoire prédéfini dans le load par app.path (dir, drive, etc...) ?
Où est l'erreur svp :o) ???

Sub m_aide_Click()
Dim lResult As Long
Dim rep
lResult = FindWindow(App.Path & "tarot4aide.exe", "")
If lResult = 0 Then rep = Shell("tarot4aide.exe", 1)
End Sub


--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------








Avatar
LE TROLL
Bonjour, merci, certes... mais tu connais comment le nom d'une d'un exe X
que tu a créé et que tu lances ???
Car il est dit dans un exemple d'API que généralement on ne connaît pas le
nom, donc on laisse en blanc (second paramètre).

--
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Vincent Guichard" a écrit dans le message de
news: 45d42cfc$0$5070$
LE TROLL a écrit :
Bonjour,

Marche pas mon truc, ça lance bien ce que je veux, mais hélas,
"autant" de fois que je le veux!!!

J'ai mis ça dans le programme appelant, je pense que c'est là qu'il
faut le mettre, il s'agit de l'appel depuis un exe d'un autre exe dans le
même répertoire prédéfini dans le load par app.path (dir, drive, etc...)
?
Où est l'erreur svp :o) ???

Sub m_aide_Click()
Dim lResult As Long
Dim rep
lResult = FindWindow(App.Path & "tarot4aide.exe", "")
If lResult = 0 Then rep = Shell("tarot4aide.exe", 1)
End Sub





Je pense que tu fais une erreur sur l'utilisation de FindWindow.
A mon avis un FindWindow("", "Titre de l'application") serait plus
probant. (avec "Titre de l'application" à modifier de façon adéquate, bien
sûr).


Vincent Guichard


Avatar
Vincent Guichard
LE TROLL a écrit :
Bonjour, merci, certes... mais tu connais comment le nom d'une d'un exe X
que tu a créé et que tu lances ???
Car il est dit dans un exemple d'API que généralement on ne connaît pas le
nom, donc on laisse en blanc (second paramètre).



Quel exemple? En général, ce qu'on ne connais pas, c'est le classname
(premier paramètre) qu'on laisse donc en blanc, alors qu'on connais le
titre de l'appli (il suffit de la lancer pour le connaitre).

Vincent Guichard
Avatar
Vincent Guichard
Vincent Guichard a écrit :
LE TROLL a écrit :
Bonjour, merci, certes... mais tu connais comment le nom d'une d'un
exe X que tu a créé et que tu lances ???
Car il est dit dans un exemple d'API que généralement on ne connaît
pas le nom, donc on laisse en blanc (second paramètre).



Quel exemple? En général, ce qu'on ne connais pas, c'est le classname
(premier paramètre) qu'on laisse donc en blanc, alors qu'on connais le
titre de l'appli (il suffit de la lancer pour le connaitre).

Vincent Guichard



Sinon tu peux utiliser Spy++ pour connaître la classe de ton appli.

Vincent Guichard
Avatar
Driss HANIB
Bonjour Vincent,
c'st bien ce que j'avais 'vaguement' compris..
mais justement pour une appli qui est en fait une feuille MDI, est ce que
son nom suffit ou alors faut il aussi ajouter le nom de la feuille fille qui
est active et qui apparait dans le même caption que la feuille MDI ?

merci

Driss

"Vincent Guichard" a écrit dans le message de
news:45d46222$0$27373$
LE TROLL a écrit :
> Bonjour, merci, certes... mais tu connais comment le nom d'une d'un exe


X
> que tu a créé et que tu lances ???
> Car il est dit dans un exemple d'API que généralement on ne connaît pas


le
> nom, donc on laisse en blanc (second paramètre).
>
Quel exemple? En général, ce qu'on ne connais pas, c'est le classname
(premier paramètre) qu'on laisse donc en blanc, alors qu'on connais le
titre de l'appli (il suffit de la lancer pour le connaitre).

Vincent Guichard


Avatar
Vincent Guichard
Driss HANIB a écrit :
Bonjour Vincent,
c'st bien ce que j'avais 'vaguement' compris..
mais justement pour une appli qui est en fait une feuille MDI, est ce que
son nom suffit ou alors faut il aussi ajouter le nom de la feuille fille qui
est active et qui apparait dans le même caption que la feuille MDI ?

merci

Driss



Pour les applications MDI, en général le titre de la fenêtre change (au
moins partiellement) selon la feuille fille chargée. Auquel cas il n'est
pas possible d'utiliser FindWindow.
Le problème des Classes c'est que par exemple tous les programmes VB6
ont ThunderRT6FormDC comme classe, ce qui n'aide pas à les différencier.
La solution est alors de faire un EnumWindows en s'arrêtant dès qu'on a
trouvé la bonne fenêtre.

Vincent Guichard
Avatar
Driss HANIB
merci Vincent

Driss

"Vincent Guichard" a écrit dans le message de
news:45d4704d$0$27402$
Driss HANIB a écrit :
> Bonjour Vincent,
> c'st bien ce que j'avais 'vaguement' compris..
> mais justement pour une appli qui est en fait une feuille MDI, est ce


que
> son nom suffit ou alors faut il aussi ajouter le nom de la feuille fille


qui
> est active et qui apparait dans le même caption que la feuille MDI ?
>
> merci
>
> Driss

Pour les applications MDI, en général le titre de la fenêtre change (au
moins partiellement) selon la feuille fille chargée. Auquel cas il n'est
pas possible d'utiliser FindWindow.
Le problème des Classes c'est que par exemple tous les programmes VB6
ont ThunderRT6FormDC comme classe, ce qui n'aide pas à les différencier.
La solution est alors de faire un EnumWindows en s'arrêtant dès qu'on a
trouvé la bonne fenêtre.

Vincent Guichard