I was having a problem where a program when compiled with PerlApp caused a radio button to be blacked out. It would only be blacked out if it was inside of a group box. http://www.nabble.com/file/p17023512/listbox.pl listbox.pl Attached is the program and the explanation from Activestate.
David, This problem should win a prize. I almost never see such a long explanation and workaround from the developers. Warning- The workaround requires the Windows SDK. It was also tested on Vista, but XP should be much the same. Here goes: -------------------------------------------------------------------------- I know "why" it happens, but can't suggest a good workaround right now: PerlApp will always bundle a manifest with the generated executable that directs it to use the themed versions of common controls when available. This manifest is embedded in the executable and cannot be easily removed / replaced. If you put the following text (without the "==============" divider lines) into a file called perl.exe.manifest right next to your perl.exe file in C:\Perl\bin then got the same effect with plain Perl: ========================================================================== <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" processorArchitecture="*" version="6.0.0.0" name="mash"/> <description>Comctl32 Test App</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" language="*" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" /> </dependentAssembly> </dependency> </assembly> ========================================================================== As a workaround, you can use mt.exe from the Windows SDK to replace the embedded manifest (I found no way to just remove the manifest). I used this manifest that tells Windows Vista to run "asInvoker", which means "do not try to elevate privileges": ========================================================================== <?xml version="1.0" encoding="utf-8" ?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Sample" type="win32" /> <description>Sample Manifest Test Application</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" /> </requestedPrivileges> </security> </trustInfo> </assembly> ========================================================================== I ran: perlapp -f listbox.pl mt -manifest my.manifest -outputresource:listbox.exe And after that listbox.exe behaved "normally" again. Unfortunately the Windows SDK is quite a huge download for achieving this. ------------------------------------------------------------------ So there you go. I hope that helps. We are planning to make some improvement to how PDK handles manifests in the near future. It's mostly to better handle Vista UAC, but it should also make workarounds like this one easier to implement. The core issue is still in Win32-GUI, and you should probably get back to the Win32-GUI community and ask them to figure out why the module doesn't work nicely with the newer common controls enabled. Best regards, -- View this message in context: http://www.nabble.com/Info-From-ActiveState-on-a-problem-tp17023512p17023512.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Perl-Win32-GUI-Users mailing list Perl-Win32-GUI-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/