Могу ли я использовать `Win32 :: GUI` для создания иконки в системном трее для моей программы Perl из командной строки? - PullRequest
3 голосов
/ 20 октября 2010

У меня есть Perl-скрипт, который выполняет бесконечный цикл.Я хотел бы иметь возможность свести к минимуму это в системный трей.Могу ли я использовать Win32::GUI, чтобы создать значок в системном трее, который при увеличении показывает командную строку и вывод скрипта?

Редактировать: Мой Perl-скрипт сам по себе процесс.Это работает непрерывно.Как запустить значок systray для другого процесса?

Ответы [ 2 ]

3 голосов
/ 23 января 2011

Да, вы можете.

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;
}

Скопировано из:

Учебное пособие по Win32-GUI Part4

Если вы хотите, чтобы значок на панели задач отображался вдругой процесс, который вы можете использовать fork(), но тогда вам понадобится какой-то способ связать процесс отца и ребенка.

0 голосов
/ 12 января 2011

Я использовал компонент ActiveState PerlTray, и он работал хорошо для меня.Конечно, это коммерческое предложение, хотя и по разумной цене (на мой взгляд).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...