| >print "->\n"; | >`C:\\Setups\\Develop\\Perl\\Win32\\ActivePython-2.0.0.202.msi`; | >print "<-\n"; | | If this is all that is in your script, then it will work, but | once I add | something like this to be called once a button is clicked on, | then it doesn't.
Nope - the three lines are actually in a click sub. The calling Win32::GUI program freezes while the backtick works (because backtick returns output, it waits for the called thing to finish). I can click around in the perl window and when I come back from the installer, the queued messages get called. Okay, here's a workaround to try if that's not what happens on your machine. In your click sub, set a variable and return -1. This terminates your message loop. Do the backtick outside the Win32::GUI::Dialog like this: for (;;) { undef $install; Win32::GUI::Dialog (); last unless $install; `$install`; #`install some more`; Win32::GUI::GetMessage (0, 0x200, 0x206) while Win32::GUI::PeekMessage (0, 0x200, 0x206); # kill all pending clicks the bored user has caused } sub Launch_Click { $install = "C:\\somewhere\\something.msi"; # or just a bool return -1; }