[python-win32] COM: control menu bar
Emre CETIN
e.cetin at yahoo.com
Sun Sep 30 09:25:38 EDT 2018
Hello James. Thank you for your advice. I ran Spy++. At the logging options I selected the menu bar portion of the other program. I selected WM_COMMAND only and then chose all "Additional Windows" (except for the All Windows in System). Then I clicked one of the menu items I wanted: Edit | Select All. It provided me with the following line: WM_COMMAND wNotifyCode:0 (sent from a menu) wID:57642.
How can I use this class ID (57642) in Python to act as if it was clicked/pressed?
E m r e
On Saturday, September 29, 2018, 1:55:37 AM GMT+3, James Scholes <james at jls-radio.com> wrote:
Emre CETIN via python-win32 wrote:
> from there is was a matter of controlling the keyboard with the
> SendKeys() command.
This seems pretty fragile at best. If the menu bar is a standard
Windows control, the window will respond to WM_COMMAND messages and
carry out the appropriate menu command without you having to send
keyboard keys. You'll need to use a tool like Spy++ to log the window
messages while you manually activate the menu commands, in order to
determine the correct IDs for the items you need.
>
> *E m r e*
>
>
> On Tuesday, September 25, 2018, 5:40:49 PM GMT+3, Emre CETIN via
> python-win32 <python-win32 at python.org> wrote:
>
>
> Hello Simon. Thank you for your response. I had read of pywinauto but
> hadn't used it before. After your advise i have been working on it for
> hours. But unfortunately i can not get the menu items. I analyzed it via
> a tool named Swapy and it shows the MenuItems field [] as an empty list.
> I'm still stuck :/
>
> *E m r e*
>
>
> On Tuesday, September 25, 2018, 1:33:01 AM GMT+3, Simon McConnell
> <simonmcconnell at gmail.com> wrote:
>
>
> I haven't used it myself but I believe this is what pywinauto does:
> http://pywinauto.github.io
>
> On Tue, 25 Sep 2018 at 02:04 Emre CETIN via python-win32
> <python-win32 at python.org <mailto:python-win32 at python.org>> wrote:
>
> Hi, I am writing a script to automate a program named Golden
> Software Surfer. I am using import win32com.client in Python during
> this process. At one point though i can not get past a certain step
> of my code. The reason is because Surfer's automation utility
> (Scipter) does not allow that part to be controlled. I could get
> past this step if i could control the main program's (Surfer) Menu
> bar. This step just has a couple of processes that all are within
> the Menu bar itself. For example here is what I want to automate:
> ******
> 1) Arrange | Edit Group
> 2) Edit | Select All
> 3) Geoprocessing | Change Boundaries | Polyline to Polygon
> 4) Geoprocessing | edit Boundaries | Combine Islands / Lakes
> 5) Arrange | Stop Editting Group
> ******
> All of these steps aren't changeable via its scripting libraries
> within Scripter. But they are all under the main programs Menu Bar.
> Is there a way for me to automate the menubar via win32com? If so
> could you please help me understand how?
>
> Basically i am trying to learn how to control the menu bar of Surfer
> from Python.
>
> Thank you all in advance.
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org <mailto:python-win32 at python.org>
> https://mail.python.org/mailman/listinfo/python-win32
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org <mailto:python-win32 at python.org>
> https://mail.python.org/mailman/listinfo/python-win32
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org
> https://mail.python.org/mailman/listinfo/python-win32
>
Regards,
James Scholes
https://twitter.com/JamesScholes
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20180930/b48e7fd5/attachment.html>
More information about the python-win32
mailing list