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/

Reply via email to