When I use inspect.exe to inspect the presentation window of powerpnt.exe, it can NOT list any element of the window, but after enable "Watch Focus" of inspect.exe and click on presentation window, inspect.exe can show detail elements of the presentation window.
My question is, how to show detail elements of the presentation window use pywinauto or win32 API.
Related
I have a custom button that I place in the ribbon menu but what I observe is that sometimes the button is visible and sometimes not, it depends on the size of the explorer and compose windows. If you resize to a smaller size it is not visible and if you resize to a bigger size it is visible. It only happens in simplified view but not in classic. So in simplified view it seems Outlook decides which buttons are being shown and which not based on a criteria that I don't know, maybe on the space available in the ribbon menu which in turn depends on the size of the window?
Anyway, If I click on commands bar button ("..." three dots button) at the end of the ribbon menu and then from that menu I do a mouse right click on my button and select "Pin to ribbon" for it, then my button is always visible in the ribbon menu regardless of if the view is classic or simpified or even if window is resized to any size.
Is there any way programmatically to indicate Outlook to always show my button in the ribbon menu?
No, the Outlook extensibility model (nor the Fluent UI) doesn't provide anything for that. You may try using RegMon for Windows to track windows registry changes in case if Outlook keeps such preferences there.
I pressed the right mouse button and selected the "Show All" option.
After that, a lot of duplicates of the same controls appeared. However, there are controls that I have not seen before. The problem is that they are disabled, I can't put them on the form.
I tried to find them in the list by right clicking and selecting "Choose Items...", but they are not in any of the tabs.
How can I find and enable these controls?
Show all will display all controls, for example, the MFC Control you screenshot should be a C++ control:
https://learn.microsoft.com/en-us/cpp/mfc/controls-mfc?view=msvc-170
You created a Windows Forms App (.NET Framework), you just need to uncheck the Show all and all the controls you can use will be displayed in the toolbar.
Most of the web browses like Chrome, FireFox and Edge provide for Disabling Mouse Right Button Click.
For my Java based web application, I want to customise the Popup menu items from the standard items like cut, copy, paste, print etc and include few more custom Menu Items as required by my web application use.
I did my search on stackoverflow and with other search engines and did not any method to customise the Right Button popup menu.
Can someone help in this regard.
I have an application with a tray menu and I'm trying to automate some tests that involve the tray menu. Basically I need obtain the tray menu's items and do stuff with them.
However, I've only been able to find ways to programmatically obtain menu items for within the application. But my automation tests are going to be an external application, so that doesn't help me.
How can I obtain an external application's tray menu items programmatically?
There are ways to enumerate/access the tray icons themselves (usually involving hooking into the notification tray itself, or using UI Automation), but there is no way to access a popup menu that appears when a tray icon is clicked on. The reason is because the icon's owning application receives a message when the click occurs and then acts accordingly, which usually involves displaying its own popup menu. There is no menu associated with the icon itself.
For what you are attempting, you would have to enumerate the icons and figure out which icon belongs to the app you are interested in (not a trivial task on its own), then simulate a click on the icon so the app displays its popup menu. See the following question for some details:
Finding and simulating a click on a system tray icon?
Interacting with the popup menu once it is displayed will be more difficult. You won't have access to the menu itself. You will likely have to resort to just issuing mouse events via mouse_event() or SendInput() to move the mouse cursor over the menu and click its items (assuming they appear in predictable locations relative to the icon).
If you can obtain the icon's HWND+ID or GUID (by hooking the notification tray itself), you can use Shell_NotifyIconGetRect() to get the icon's coordinates, at least.
How can I obtain an external application's tray menu items programmatically?
You cannot. There is no public API that provides access to notification icons.
Depending on what sort of assumptions you find acceptable, you can programmatically interact with the taskbar button's menu once it's visible. The image below shows the Inspect SDK tool reporting properties on the OneNote clipping tool button's menu. (And the menu items say they support the UIA Invoke Patten, so they should be programmatically invokable by UIA client code.)
If you want to invoke your tray button's menu items, you might consider the following steps using UIA. You may feel the assumptions that I make here are unacceptable for your situation.
Find the element with a class name "NotifyIconOverflowWindow", that's a direct child of the root menu. I'm assuming the button is in the overflow area.
Enumerate the children of the overflow element, looking for a button with the name of your button. This assumes the UI language is known and accounted for.
Get the bounding rect of the button and simulate a mouse right-click on the button. The click simulation is necessary because I'll bet the UI doesn't support IUIAutomationElement3::ShowContextMenu(), (but you could always try it).
Once the context menu's up, find the element with a ControlType a Menu, a Name of "Context", that's a direct child of the root element.
Once you have the menu, enumerate the child elements in the menu to find the items, and do what you want with them. Eg get the menu item's Invoke pattern and invoke it.
used dialog tag in xul for a dialog box for an xul application.Earlier before firefox update the tool had maximize and minimize buttons but after update the buttons are no longer there in the tool.
MDN Docs: Window.openDialog, Window.open, <window>, <dialog>, <dialogheader>, Dialogs and Prompts
Without all of: The Firefox version from which you were upgrading, the version you upgraded to, the code you are using to open the window, and the XUL used to describe the window it is difficult to provide you with an answer which actually covers what you want to know.
MDN has the following to say on dialog windows: "Dialog windows are windows which have no minimize system command icon and no maximize/restore down system command icon on the titlebar nor in correspondent menu item in the command system menu. They are said to be dialog because their normal, usual purpose is to only notify info and to be dismissed, closed. On Mac systems, dialog windows have a different window border and they may get turned into a sheet."
That makes is clear that dialog windows do not normally have the controls you are asking about.
However, you can pass minimizable in the features parameter of the window.open() or window.openDialog() functions to turn on minimize control.
In general, if you want a dialog to have minimize and maximize buttons, you have to open it as a normal window with window.open(). You can limit the other toolbars that it has at the top by supplying appropriate parameters in the window.open() call. You can also make it modal, like some dialogs. You then create your own OK and Cancel buttons with appropriate code to accept the information in the dialog or cancel. Basically, if you want a maximized window for a dialog it should usually be doing quite a bit. In such case, you probably want more control over how your window looks than is available from a dialog window. Dialogs are, generally, subset of what windows can do with the ability to have a few buttons easily provided.