#!/usr/bin/perl use warnings; use strict; #The function name is defined as "Win32::GUI::NotifyIcon". #You will need to be carefull about the order of your sub... #Here a sample script to let's you see, just choose a nice win32 ico and #name it god.ico in the same dir from where you will launch this script: #--------------- BEGIN{ use Win32::Console; Win32::Console::Free(); } use Win32::GUI; use Tk; $mw = MainWindow -> new; $mw -> wm('geometry', '0x0+0+0'); $mw->overrideredirect(1); &do_win32_stuff; MainLoop; #-------------------------------- sub do_win32_stuff{ $mw_win32 = new Win32::GUI::DialogBox( -width => 0, -height => 0, -name => 'MainWindow'); $icon = new Win32::GUI::Icon('god.ico'); new Win32::GUI::NotifyIcon( $mw_win32, -name => "Notify", -id => 1, -icon => $icon, -tip => "I\'am in the Systray!"); $call = Win32::GUI::Dialog(); $mw_win32->Notify->Delete(-id => 1); sub Notify_Click{ &my_menu; } } #-------------------------------- sub my_menu{ $popup = $mw->Menu(Name => 'popupMenu', -tearoff => 0); $popup->command(-label => 'Number 1',-command => [\&do_label,1] ); $popup->command(-label => 'Number 2',-command => [\&do_label,2]); $popup->separator; $popup->command(-label => 'Number 3', -command => [\&do_label,3]); $popup->command(-label => 'Number 4', -command => [\&do_label,4]); $popup->command(-label => 'Number 5', -command => [\&do_label,5]); $popup->separator; $popup->command(-label => 'Quit', -command => [ \&stop]); $popup->Popup(-popover => 'cursor', -popanchor => 'nw'); } #-------------------------------- sub stop{ exit; } #-------------------------------- sub do_label{ if(Exists($top)){ $label-> configure(-text => "I\'am $_[0]"); } else { $top = $mw ->Toplevel; $top->title(" Numbers"); $top->focus; $label = $top->Label (-text => "I\'am $_[0]", -relief => 'groove', -width => '24')->pack; } }