Kurt Eilander wrote: > According to http://developex.com/blog/system-modal-back/ the thing to > do is to create and switch to a new desktop. > > Therefore, I'm doing: > > hDeskOld=win32service.GetThreadDesktop(win32api.GetCurrentThreadId()) > hDesk=win32service.CreateDesktop("SysModalDesktop",0,win32con.GENERIC_ALL,None) > > > hDesk.SwitchDesktop() # switch to the new desktop > try: > root=Tk() > app=SysmodalDialog(root,title,message,img) > app.mainloop() > except Exception,e: > print e > hDeskOld.SwitchDesktop() # switch back > hDesk.CloseDesktop() # done > > The tk stuff inside the try works fine on its own. > If I replace the Tk stuff with time.sleep(5.0), then desktops switch > fine as well. > > The problem is I can't get the tk app to show on the new desktop (and > therefore mainloop() blocks and I can't get back out of it!)
I see Eryk provided the explanation, but all I had to do to make your example work was add hDesk.SetThreadDesktop() just after your SwitchDesktop call. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. _______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32