python pyqt win32gui

python - ¿Captura el cuadro de diálogo "Guardar los cambios" al usar win32gui y cerrar una aplicación incrustada dentro de una aplicación de Q?



pyqt (1)

Estás en un camino que solo te traerá dolor y desilusiones.

El Bloc de notas es solo una de las pocas aplicaciones de Windows que tiene su código fuente disponible de forma gratuita.
Recompílalo y modifícalo para que se ajuste a tus propósitos.

Descubrirá que también hay otros cuadros de diálogo emergentes de los que es posible que deba deshacerse.

Ahora, si realmente desea continuar con la automatización para Windows, probablemente necesitará algo como https://pywinauto.github.io, que tiene un ejemplo para notepad.exe .

Estoy incrustando una aplicación dentro de una pestaña en una aplicación QQ de pyqt. Cuando cierro la pestaña, esta aplicación está incorporada en ¿Cómo permito que muestre el cuadro de diálogo "Guardar los cambios"?

Yo uso esto en tab_close:

win32gui.PostMessage(int(wdg.process._handle),win32con.WM_CLOSE,0,0)

Sin embargo, cuando hago esto, pierdo este cuadro de diálogo, si la aplicación normalmente presenta uno.

El código se parece a esto:

class MainWindow(QTabWidget): def __init__(self, parent=None): QTabWidget.__init__(self, parent) self.setTabsClosable(1) self.tabCloseRequested.connect(self.close_tab) ... def close_tab(self,ind): wdg = self.widget(ind) win32gui.PostMessage(int(wdg.process._handle),win32con.WM_CLOSE,0,0) self.removeTab(ind) del wdg ...

Esto produce una interfaz de usuario como esta (con notepad.exe de Windows incrustado). Al hacer clic en la "X" de la pestaña, se cerrará el Bloc de notas sin pedirle al usuario que guarde ninguna entrada.

¿Cómo puedo cerrar la pestaña y permitir que la aplicación incorporada solicite a un usuario que guarde sus cambios?