Re: [ctypes-users] calls to windll.user32
Brought to you by:
theller
From: Thomas H. <th...@ct...> - 2008-01-23 18:01:46
|
list1 schrieb: > Hi, > > I am trying to use ctypes to invoke a couple simple windows dialogues, > without having to use py2win32 or something like wx, e.g. > > from ctypes import * > > windll.user32.MessageBoxA(...) > and > windll.comdlg32.GetOpenFileNameW(...) > > > If the script is run from IDLE, or if the few lines to invoke it are typed > in IDLE, then the I can crash it easily. > > I can move, interact and close the dialog invoked by the above calls, but if > the IDLE window itself is moved then python crashes, why is this? > > If the script is run outside of IDLE then I don't find the same problem. > > I assume its something to do with handles or callbacks, but I'm no windows > programmer so I can't find a solution. > > I've tried searching but can't find any mention of this. I can reproduce this, but only when I run IDLE without a separate process (with the -n flag). I have to use python.exe to run it so I can see the error message. This appears exactly when I do what you describe: C:\Python25>python -S Lib\idlelib\idle.pyw -n Fatal Python error: PyEval_RestoreThread: NULL tstate This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. C:\Python25> There is a bug somewhere related to the GIL and the tkinter message loop; unfortunately I cannot debug it right now because I don't have a debug build that works with tcl/tk. So, my suggestion is to run IDLE *with* a separate process, or use another ide, maybe pythonwin? Thomas |