[..] WinMenuSelectItem

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

[..] WinMenuSelectItem

#1

Message par MJGUILLAUME »

Bonjour,pourquoi le code suivant ne marche pas
Merci

Code : Tout sélectionner

WinActivate("[CLASS:Notepad]", "" )
WinWaitActive("[CLASS:Notepad]", "", 5 )
;send("!F")
WinMenuSelectItem("[CLASS:Notepad]", "", "&Fichier" )
Modifié en dernier par Tlem le mar. 28 juin 2011 19:59, modifié 2 fois.
Raison : Le forum pour demander de l'aide est "Aide générale" !
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..]WinMenuSelectItem

#2

Message par jchd »

As-tu lancé Notepad ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

Re: [..]WinMenuSelectItem

#3

Message par MJGUILLAUME »

J'ai lancé NOTEPAD,le code passe bien la fenetre au premier plan et rien ne passe.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] WinMenuSelectItem

#4

Message par Tlem »

Ce code fonctioone chez moi (XP SP3) :

Code : Tout sélectionner

ShellExecute("notepad.exe")
Sleep(2000)

WinActivate("[CLASS:Notepad]", "" )
WinWaitActive("[CLASS:Notepad]", "", 5 )
WinMenuSelectItem("[CLASS:Notepad]", "", "&Fichier", "&Mise en page...")
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] WinMenuSelectItem

#5

Message par TT22 »

Tlem a écrit :Ce code fonctioone chez moi (XP SP3)
Il fonctionne aussi chez moi : Windows 7 familial premium 64 bits
Cordialement,
TT22
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

Re: [..] WinMenuSelectItem

#6

Message par MJGUILLAUME »

Merci
Cela marche bien,en fait il faut aller jusqu'au bout du menu et ne pas ecrire seulement
"&Fichier" mais plutot "&Fichier","&Ouvrir..." par exemple
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] WinMenuSelectItem

#7

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

Re: [..] WinMenuSelectItem

#8

Message par MJGUILLAUME »

Pardon, je suis peut être un peu lourd, mais je n'arrive pas à gerer les menus d'EXCEL et de WRITER, le but final étant de faire la même chose avec FRAMEMAKER (avec postmessage ou sendmessage c'est pareil). Voici les codes

Code : Tout sélectionner

;essai avec EXCEL qui s'ouvre et passe au premier plan
ShellExecute("EXCEL.exe")
Sleep(2000)

WinActivate("[CLASS:XLMAIN]", "" )
WinWaitActive("[CLASS:XLMAIN]", "", 1 )
WinMenuSelectItem("[CLASS:XLMAIN]", "", "&Fichier", "&Ouvrir...")

Code : Tout sélectionner

;essai avec WRITER qui s'ouvre et passe au premier plan
ShellExecute("switer.exe")
Sleep(2000)

WinActivate("[CLASS:SALFRAME]", "" )
WinWaitActive("[CLASS:SALFRAME]", "", 1 )
WinMenuSelectItem("[CLASS:SALFRAME]", "", "&Fichier", "&Ouvrir...")
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] WinMenuSelectItem

#9

Message par Tlem »

Extrait de la documentation de WinMenuSelectItem :
WinMenuSelectItem will only work on standard menus. Unfortunately, many menus in use today are actually custom written or toolbars "pretending" to be menus. This is true for most Microsoft applications.
Il y à de grande chance que vous soyez dans ce cas. ^^

Lorsque les choses ne fonctionnent pas comme on veut, il est toujours possible de faire autrement :

Code : Tout sélectionner

;essai avec WRITER qui s'ouvre et passe au premier plan
ShellExecute("C:\Program Files\LibreOffice 3.4\program\swriter.exe")

; Boucle d'attente de l'affichage de la fenêtre Writer (peut être remplacé par un Sleep)
While 1
    $Title = WinGetTitle("[CLASS:SALFRAME]")
    If StringLen($Title) > 1 Then ExitLoop
    Sleep(30)
WEnd

WinActivate($Title, "" )
Send("!FO")
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

Re: [..] WinMenuSelectItem

#10

Message par MJGUILLAUME »

Merci pour la reponse.
J'ai commencé par un send et ca marche, mais je prefere Winmenuselect car cela me semble plus sure, mais si c'est impossible eut égard aux restrictions signalées dans la doc il faudra éviter que le send arrive par fausse manip de l'utilisateur sur une autre appli que celle visée.
Sur le principe qu'elle est la difference entre un menu NOTEPAD et un menu EXCEL?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] WinMenuSelectItem

#11

Message par Tlem »

Humm, si vous voulez être sur que les commandes sont envoyés à la bonne appli sans risque d'interférence, alors il faudra faire quelques contrôles du lancement de l'application réceptrice, puis une fois sur qu'elle est lancée, bloquez clavier+souris (déjà vu) et enfin envoyez vos commandes. Une fois terminé, redonnez la main à l'utilisateur.

En ce qui concerne la différence des menus, je ne puis vous répondre.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] WinMenuSelectItem

#12

Message par jchd »

Notepad n'est qu'un ramassis de contrôles standards assemblés dans une boîboîte standard par des étudiants en info en stage non rémunéré. Excel est une appli gloutonne mal ficelée et s'inscrivant en faux contre _toutes_ les règles de bon développement préconisées entre-autres par BilouSoft, mais stratégique pour conserver captive la clientèle juteuse d'Office Corporate.

On constate les mêmes différences entre le fardeau de Cugnot et une Mercedes Class A.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

Re: [..] WinMenuSelectItem

#13

Message par MJGUILLAUME »

Suite à cette derniere reponse tres imagée, peut on dire que WinMenuSelectItem
ne sert pas à grand chose, si ce n'est qu'a faire illusion sur les possibilites d'AUTOIT, tout au moins pour cette fonction.?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] WinMenuSelectItem

#14

Message par jchd »

Illusion ? PARDON ?
Ce serait plutôt Excel et autres tas de boue qui font illusion. Ne pas se tromper de sens ! Je suis curieux de savoir quel comportement de WinMenuSelectItem ne correspond pas à sa spécification.

Des millions de personnes aux quatres coins de la planète utilisent AutoIt (le sachant ou pas) dans à peu près tous les contextes. Prétendre qu'AutoIt est un leurre est un peu fort en café.

Maintenant et pour éviter de continuer à débiter des sornettes infondées sur AutoIt, mieux vaudrait se pencher un peu sur l'aide concernant les fonctions _Excel qui permettent de faire beaucoup de choses sans se prendre le chou à bidouiller dans des menus qui n'en sont pas.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
MJGUILLAUME
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 27 juin 2011 17:58
Status : Hors ligne

Re: [..] WinMenuSelectItem

#15

Message par MJGUILLAUME »

Ce n'était qu'une question, j'ai pris Excel comme exemple mais depuis le debut je cherche à piloter FRAMEMAKER car à ma connaissance il n'y a pas de moyen aisé de le programmer par automation. Et puis si je comprends bien il y beaucoup de logiciels
(Excel,Word,openoffice,Acrobat,Illustrator.....) qui ne repondent pas aux specifs de notre sujet.
Quels sont donc les bons logiciels?
Merci
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] WinMenuSelectItem

#16

Message par mikell »

Heu est-ce que les fonctions Control... , _GUICtrlMenu.. ou _GUICtrlToolbar... ne marcheraient pas dans ce cas :?:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] WinMenuSelectItem

#17

Message par jchd »

Excel, Word et tous les autres composants Office (toutes versions récentes) : softs pur Bilou, donc incompatibles avec Windows. Plus sérieusement, n'utilisent aucun contrôle Windows natif. Prière de demander pourquoi à Seattle.

Openoffice : écrit en Java, dont les bibliothèques standard n'utilisent aucun contrôle Windows natif. Demander pourquoi à Oracle.

Acrobat, Illustrator : demander pourquoi à Abobe.

OK, cette vision est brutale et simplifiée, mais en pratique, ces soft posent problème. Pour certains, le besoin de portabilité sur de nombreuses plate-formes explique (à défaut de le justifier) l'emploi de contrôles "maison" au travers de bibliothèques transversales.

Pour d'autres éditeurs, c'est l'irrepressible besoin de faire dans le joli ou de ne ressembler à rien d'autre. Ceux-là sont des danseuses car on peut consacrer de l'énergie à la cosmétique quand l'essentiel est là (compatibilité, stabilité, fiabilité, ergonomie, etc.) ce qui est le cadet des soucis de la plupart des éditeurs, mûs uniquement par le marketting et l'actionnaire.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre