GUI causes unwanted system pop-ups on Windows

Sorry in advance for the vague report, but I’m seeing a strange problem I don’t understand on a couple of different Windows 7 systems. I’m hoping someone here can help suggest how to better diagnose this.

From one wxPython GUI App (that links to many libs, including most of the scipy stack) I sometimes (definitely not always) see that some events cause the Windows Start Menu to pop up, or for “Calculator” or an “Install Outlook” dialog to pop up. The only machines I’ve seen the “Install Outlook” dialog pop up is a machine where the user accounts does not have an Outlook account, and I suspect this behavior might imply that some library wants to access email or a calendar. But on other machines, “Calculator” or the Start Menu pop up. None of the code I’ve written for this App knowingly uses email or calendars, so I suspect this may be in some library that is doing something that in effect does “start calc” or “start outlook”. It is infrequent enough (I go days without seeing it) that I have not been able to create a small app that reproduces this behavior.

I believe these pop-ups are triggered only from wx.EVT_LISTBOX events to a CheckListBox. This event is meant to cause a fair amount of work (including a matplotlib plot to be generated). For sure, I have only seen this behavior with wxPython 4.0.1 and using Anaconda Python 2.7.14, but I don’t know that this combination is required.

Has anyone ever seen such behavior? Does anyone have a suggestion of where to start looking for what code might be starting other apps?

Again, sorry for the vague report and thanks in advance for any ideas.

–Matt Newville

You might try monkey patching likely functions that could be launching those commands, like os.startfile, os.system, the various entry points in subprocess, etc. The wrappers you replace them with could log the commands used, which would help you identify what is being run that could be causing the issues you are seeing. Once you have that info, your wrapper can be modified to raise an exception in that (or those) case(s), which will tell you where that call is coming from.

···

On Tuesday, April 10, 2018 at 1:15:46 PM UTC-7, Matt Newville wrote:

Has anyone ever seen such behavior? Does anyone have a suggestion of where to start looking for what code might be starting other apps?

Robin

Hi Robin,

···

On Wed, Apr 11, 2018 at 12:12 PM, Robin Dunn robin@alldunn.com wrote:

On Tuesday, April 10, 2018 at 1:15:46 PM UTC-7, Matt Newville wrote:

Has anyone ever seen such behavior? Does anyone have a suggestion of where to start looking for what code might be starting other apps?

You might try monkey patching likely functions that could be launching those commands, like os.startfile, os.system, the various entry points in subprocess, etc. The wrappers you replace them with could log the commands used, which would help you identify what is being run that could be causing the issues you are seeing. Once you have that info, your wrapper can be modified to raise an exception in that (or those) case(s), which will tell you where that call is coming from.

Excellent suggestion. I’ll try that and see where it leads.

–Matt