Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]4909[/thread]

In Taskleiste verschwinden lassen (Seite 3)



<< |< 1 2 3 4 5 >| >> 45 Einträge, 5 Seiten
zipster
 2005-04-20 18:10
#43205 #43205
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hättest in deinem Wiki ruhig ein wenig weiter ausholen können.

Auf "das Rechtsklick Menü" oder "Linksklick auf Icon" oder.... bist du nämlich garnicht eingegangen.

Das könnte Anfängern schon weiterhelfen schätze ich!\n\n

<!--EDIT|zipster|1114006285-->
Froschpopo
 2005-04-20 18:27
#43206 #43206
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich will Artikel schreiben, nicht mich mit dem Wiki rumstreiten... ist mir zu stressig da was zu machen... aber ich schau alle par monate mal rein ob es übersichtlicher geworden ist, wenn dann schreib ich was rein.
zipster
 2005-04-20 18:51
#43207 #43207
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
@renee

kannst du nachträglich Froschpopos Beitrag verändern?


Ja, das können all die Moderatoren hier :-)\n\n

<!--EDIT|Crian|1114014338-->
renee
 2005-04-20 22:47
#43208 #43208
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie gesagt: Schickt mir die Artikel und/oder Änderungswünsche und ich werde es einstellen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
zipster
 2005-04-21 09:52
#43209 #43209
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
@Crian
Ich meinte nicht die Forenbeiträge *G*
Aber danke für das nette beispiel:D
renee
 2005-04-21 11:03
#43210 #43210
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@zipster: Die Beträge im Wiki kann jeder ändern, der im Wiki registriert ist. Das ist ja der Sinn eines Wikis...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
zipster
 2005-04-21 11:11
#43211 #43211
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hier mal meine Version vom Trayicon

Quote
TrayIcon mit Win32::GUI::NotifyIcon

Ich versuche hier in diesem Text zu erklären wie man per Win32::Gui ein TrayIcon erstellt.
Als erstes müssen sie ein Win32::Gui Hauptfenster erstellen. Den nur ein TrayIcon geht leider nicht. Dies rufen wir hiermit auf.
main = Win32::GUI::Window->new(-name => 'Main',
-text => 'Perl TrayIcon',
-width => 0,
-height => 0,
-visible => 0);
-name
Gibt die interne Bezeichnung für das Fenster an.

-text
Title des Fensters

-width
Breite des Fensters

-height
Höhe des Fensters

-visible
Mit 0 Unsichtbar und mit 1 Sichtbar

Als nächstes definieren wir was wir als Icon nutzen wollen
my $icon = new Win32::GUI::Icon('server.ICO');

Danach können wir das Icon aufrufen.
my $ni = $main->AddNotifyIcon(-name => "systray",
-id => $id,
-icon => $icon,
-tip => "tooltip");
-name
Gibt die interne Bezeichnung für das Fenster an.

-id
Eine eindeutige Bezeichnung für das NotifyIcon Objekt.

-icon
Hier wird der Icon angegeben den wir oben angelegt haben. Siehe &„my $icon&“

-tip
Der Tooltip. Der angezeigt wird wenn man mit dem Mauszeiger darüber bleibt.

Wenn man jetzt noch Win32::GUI::Dialog(); im Script angibt ist es eigentlich schon benutzbar, hat aber noch keine Funktion. Hierfür hat NotifyIcon noch Events parat.

Click()
Wird ausgeführt wenn man mit der linken Maustaste draufdrückt.

RightClick()
Wird ausgeführt wenn man mit der rechten Maustaste draufdrückt.

Mouseevent()
Selber leider noch nicht genutzt. Soll aber auf bestimmt Mausereignisse reagieren können.

Ich werde hier nur RightClick erklären da ich dies am meisten genutzt habe und da es den anderen Events sehr ähnlich ist.

sub systray_RightClick
{
my $systray_menu = new Win32::GUI::Menu(
"SystrayMenu Functions" =>"SystrayMenu",
"> Info" => "Systray_info",
"> Dienst" =>"",
">> Starten" => "Systray_start",
">> Stoppen" => "Systray_stop",
">> Restart" => "Systray_restart",
">> Pausieren" => "Systray_pause",
"> Exit" => "SystrayExit"
);
my($x, $y) = Win32::GUI::GetCursorPos();
$main->TrackPopupMenu($systray_menu->{SystrayMenu}, $x, $y-50);
}

My $systray_menu&…
Erstellt ein Menü mit den unten angegebenen Menüpunkten
"> Info" => "Systray_info",
> bedeutet das es ein Hauptmenüpunkt ist. Und das hinter der => sagt aus welche Subroutine aufgerufen werden soll.
">> Starten" => "Systray_start",
>> bedeutet das es ein Untermenüpunkt ist.
my($x, $y) = Win32::GUI::GetCursorPos();
ließt aus wo sich der Mauszeiger gerade befindet.
$main->TrackPopupMenu($systray_menu->{SystrayMenu}, $x, $y-50);
Öffnet das oben angelegte Menü.


So das wärs auch schon fast.

Jetzt noch ein kleines extra am Ende.
NotifyIcon hat nämlich leider einen kleien Bug. Wenn das Programm beendet wird, wird das Icon leider nicht gelöscht.
Dies kann man mit diesen beiden Subs abfangen.
sub Main_Terminate
{
Win32::GUI::NotifyIcon::Delete( $ni, -id => $id );
-1;
}
sub systray_Terminate
{
Win32::GUI::NotifyIcon::Delete( $ni, -id => $id );
-1;
}


Hier noch mal den ganzen Code zur Veranschaulichung.
use Win32::GUI;
use strict;
use warnings;




my $id = "1";
my $hwnd = GUI::GetPerlWindow(); GUI::Hide($hwnd);
my $icon = new Win32::GUI::Icon('server.ICO');
my $main = Win32::GUI::Window->new(-name => 'Main',
-text => 'Perl',
-width => 200,
-height => 200);
my $ni = $main->AddNotifyIcon(-name => "systray",
-id => $id,
-icon => $icon,
-tip => "Go Back!up");
Win32::GUI::Dialog();
Win32::GUI::Show($hwnd);



sub systray_RightClick
{
my $systray_menu = new Win32::GUI::Menu( "SystrayMenu Functions" => "SystrayMenu",
#"Go Back!up",
"> Info" => "Systray_info",
"> Dienst" =>"",
">> Starten" => "Systray_start",
">> Stoppen" => "Systray_stop",
">> Restart" => "Systray_restart",
">> Pausieren" => "Systray_pause",
"> Exit" => "SystrayExit"
);
my($x, $y) = Win32::GUI::GetCursorPos();
$main->TrackPopupMenu($systray_menu->{SystrayMenu}, $x, $y-50);
}
sub Main_Terminate
{
Win32::GUI::NotifyIcon::Delete( $ni, -id => $id );
-1;
}
sub systray_Terminate
{
Win32::GUI::NotifyIcon::Delete( $ni, -id => $id );
-1;
}


Wäre das was fürs Wiki? Oder nicht gut?\n\n

<!--EDIT|zipster|1114068033-->
renee
 2005-04-21 11:17
#43212 #43212
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das wäre was, stellst Du das ins Wiki??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
zipster
 2005-04-21 11:54
#43213 #43213
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Öhm ok...

/EDIT

Habs fertig.
Ich hoffe es ist ok so... war ja mein erstes mal ;)

http://wiki.perl-community.de/bin/view/Wissensbasis/InhaltWinSkripte\n\n

<!--EDIT|zipster|1114071305-->
Crian
 2005-04-21 12:23
#43214 #43214
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Schick, danke. Vielleicht ist dieses Mouseevent dafür da, auf auf-das-Icon-gezogene-Dateien oder ähnliches reagieren zu können?

Edit: Ich hab den Wiki-Beitrag mal etwas verschönert (Tabellen etc.).\n\n

<!--EDIT|Crian|1114073231-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 4 5 >| >> 45 Einträge, 5 Seiten



View all threads created 2005-04-04 23:59.