Hi,

I've had crashes before - some related to systray. Make sure you are using the latest version of both Win32::GUI, PerlApp (7.3) and Perl (5.8.7+). I've had some issues (crashes and silent exits) with PerlApp under Vista (fine under XP) but they have all been fixed in the latest version. Drop me a mail off list if this doesn't solve things.

Cheers,

Jeremy.

> Date: Thu, 15 Jan 2009 15:03:05 -0800
> From: jack@monkeynoodle.org
> To: perl-win32-gui-users@lists.sourceforge.net
> Subject: [perl-win32-gui-users] crashes in GUI.dll?
>
> Hi,
>
> I have a large ActiveState Perl 5.8 application, compiled to .exe
> using their PDK. It uses a system tray icon to advertise its state
> while it's running, using balloon tips. Sometimes, on some systems, it
> crashes in GUI.dll. I have not been able to replicate or diagnose the
> issue, and I'm hoping for some pointers for what might cause it. Not
> using the system tray icon does appear to make the crashes stop.
> Here's the systray subroutines:
>
> ## System tray icon subroutines ###############################################
> sub EnableSystray {
> $systrayicon = new Win32::GUI::Icon('ldms_core.ico');
> $systraymain = Win32::GUI::Window->new(
> -name => 'ldms_core_systray',
> -text => 'ldms_core_systray',
> -width => 20,
> -height => 20,
> -visible => 0,
> );
> $systraymain->Enable();
> $popupMenu = Win32::GUI::Menu->new(
> "Options" => "Options",
> ">Manual" => {
> -name => "Manual",
> -onClick => sub {
> open_browser(
> 'http://www.droppedpackets.org/scripts/ldms_core/ldms_core-manual'
> );
> }
> },
> ">EventViewer" => {
> -name => "Event Viewer",
> -onClick => \&Eventvwr
> },
> ">Exit" => {
> -name => "Exit",
> -onClick => \&systrayexit
> }
> );
> $systraynotify = $systraymain->AddNotifyIcon(
> -name => "ldms_core_systray",
> -icon => $systrayicon,
> -tip => "$prog $VERSION running\n",
> -balloon_icon => "info",
> -onClick => \&systraymenu,
> -onRightClick => \&systraymenu,
>
> );
> return 0;
> }
>
> sub ChangeBalloon {
>
> # Is the user trying to kill us?
> Win32::GUI::DoEvents() >= 0 or &LogDie("Killed by user.");
>
> # If systray support is off, just leave now
> if ( $showsystray == 0 ) { return 0; }
>
> # item can be title or tip
> # icon is fixed as "info"
> my $item = shift;
> my $value = shift;
> $systraynotify->Change( "-balloon_$item" => $value );
>
> # this is to change the hovering tooltip
> $systraynotify->Change( -tip => $value, );
> $systraynotify->ShowBalloon(0);
> $systraynotify->ShowBalloon(1);
> return 0;
> }
>
> sub systraymain_Terminate {
> &LogDie("Killed by user");
> return 0;
> }
>
> sub systraymenu {
> $systraymain->TrackPopupMenu( $popupMenu->{Options} );
> return 1;
> }
>
> sub Eventvwr {
> system("eventvwr.msc");
> return 0;
> }
>
> sub systrayexit {
> &LogDie("Killed by user");
> return 0;
> }
>
>
> --
> "I spent all me tin with the ladies drinking gin,
> So across the Western ocean I must wander" -- traditional
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> 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/


What can you do with the new Windows Live? Find out