我可以使用“Win32::GUI”为命令提示符Perl程序创建系统托盘图标吗?

我可以使用“Win32::GUI”为命令提示符Perl程序创建系统托盘图标吗?,perl,Perl,我有一个运行无限循环的Perl脚本。我希望能够将此最小化到系统托盘。我是否可以使用Win32::GUI创建一个系统托盘图标,当最大化时,该图标将显示命令提示和脚本的输出 编辑:我的perl脚本本身就是一个过程。它一直在运行。如何在另一个进程中运行systray图标?我使用了ActiveState PerlTray组件,它对我来说运行得很好。当然,这是一个商业产品,尽管价格合理(在我看来)。是的,你可以 use Win32::GUI(); my $main = Win32::GUI::Windo

我有一个运行无限循环的Perl脚本。我希望能够将此最小化到系统托盘。我是否可以使用
Win32::GUI
创建一个系统托盘图标,当最大化时,该图标将显示命令提示和脚本的输出


编辑:我的perl脚本本身就是一个过程。它一直在运行。如何在另一个进程中运行systray图标?

我使用了ActiveState PerlTray组件,它对我来说运行得很好。当然,这是一个商业产品,尽管价格合理(在我看来)。

是的,你可以

use Win32::GUI();

my $main = Win32::GUI::Window->new(
    -name => 'Main',
    -text => 'Perl',
    -width => 200,
    -height => 200
);

my $icon = new Win32::GUI::Icon('GUIPERL.ICO');
my $ni = $main->AddNotifyIcon(
    -name => "NI",
    -icon => $icon,
    -tip => "Hello"
);

Win32::GUI::Dialog();

sub Main_Terminate {
    return -1;
}

sub Main_Minimize {
    $main->Disable();
    $main->Hide();
    return 1;
}

sub NI_Click {
    $main->Enable();
    $main->Show();
    return 1;
}
抄袭自:

如果您希望托盘图标位于不同的进程中,您可以使用
fork()
,但您需要某种方式来与父进程和子进程通信