J'ai un programme en Python qui obtient un handle de fenêtre via COM à partir d'un autre programme (pensez au programme Python en tant qu'addin) J'ai défini cette fenêtre comme étant le le parent principal du cadre Python, de sorte que si l'autre programme se réduit, le cadre python le sera également. Le problème est quand je vais à la sortie, et essaye de fermer ou de détruire le cadre principal, le frame.close ne termine jamais son exécution (bien qu'il disparaisse) et l'autre programme refuse de fermer à moins d'être tué avec TaskManager.wxPython ne se ferme pas Cadre avec un parent qui est un handle de fenêtre
Voici à peu près les mesures que nous prenons:
if we are started directly, launch other program
if not, we are called from the other program, do nothing
enter main function:
create new wx.App
set other program as frame parent:
Get handle via COM
create a parent using wx.Window_FromHWND
create new frame with handle as parent
show frame
enter main loop
App.onexit:
close frame
frame = None
handle as parent = None
handle = None
Quelqu'un a des idées sur ce ou de l'expérience avec ce genre de chose?
J'apprécie n'importe quelle aide avec ceci!
[Modifier] Ceci est seulement le cas lorsque j'utilise la poignée en tant que parent, si je reçois juste la poignée et fermer le programme python, l'autre programme se termine bien
J'ai essayé à la fois de fermer et de détruire. Je ne suis pas sûr de comprendre ce que vous voulez dire par "Dropdown to win32 API", pourriez-vous élaborer? – Fry
Je veux dire, par exemple, obtenir le HWND du cadre et essayer de le détruire via DestroyWindow (hFrame); la définition de WM_EX_NOPARENTNOTIFY lors de la création de la fenêtre pour s'assurer que le pseudo-parent ne participe pas au processus de destruction/fermeture; et d'autres astuces de bas niveau que Win32 rend disponibles mais qui ne peuvent pas être révélées par des frameworks multiplateformes tels que wx - voir http://msdn.microsoft.com/fr-fr/library/aa383749(VS.85).aspx pour beaucoup plus de détails. –
Je n'arrive pas à trouver un moyen d'implémenter vos suggestions en Python. En ce moment je viens de mettre la fenêtre handle à détruire à la sortie du programme Python. Je ne peux pas trouver plus d'informations ailleurs – Fry