From: Jeremy W. <jez...@ho...> - 2009-01-15 23:40:05
|
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: ja...@mo... > To: per...@li... > 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 > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ _________________________________________________________________ Choose the perfect PC or mobile phone for you http://clk.atdmt.com/UKM/go/130777504/direct/01/ |