#!/usr/bin/perl use strict; use Tk; use Tk::LabFrame; use File::Basename; my $mw = MainWindow->new; $mw->title("Ein TEST mit LISTBOX"); # ***************************************************************************** # ** Generiere Menü AUSWAHL DES DIRECTORIES *********************************** # ***************************************************************************** my $laden = $mw->LabFrame(-label=>'[ 1--> Auswahl des Directories ]', -labelside=>'acrosstop') ->pack (-side =>'top', -expand=>1, -fill=>'x'); my $laden_button = $laden->Button(-text=>'Auswählen', -command=> \&Load_Path) ->pack (-side=>'left', -expand=>0, -fill=>'none'); my $laden_entry = $laden->Entry(-width=>50) ->pack (-side=>'left', -expand=>1, -fill=>'x'); # ***************************************************************************** # ** Generiere Menü PROGRAMME-AUSWÄHLEN *************************************** # ***************************************************************************** my $listbox_frame = $mw->LabFrame(-label=>'[ 2--> Programme-Auswählen ]', -labelside=>'acrosstop') ->pack (-side =>'top', -expand=>1, -fill=>'x'); my $Auswahl_Liste = $listbox_frame->Listbox("width" => 20, "height" => 5, -selectmode => 'single') ->pack(-side=> 'left'); $Auswahl_Liste->insert('end', "a.pl", "b.pl", "c.pl",); $Auswahl_Liste->bind('', \&Zeige_Auswahl); # ***************************************************************************** # ** Generiere Menü PROGRAMME AUSFÜHREN *************************************** # ***************************************************************************** my $button = $mw->LabFrame(-label=>'[ 3--> Programme ausführen ]', -labelside => 'acrosstop') ->pack(-side=>'top', -expand=>1, -fill=>'x'); my $doit_btn = $button->Button(-text=>'Ausgewählte Programme ausführen', -command=> \&Run_Perl_Prog) ->pack(-side=>'left', -expand=>0); MainLoop(); # ***************************************************************************** # ** Sub ZEIGE_AUSWAHL ******************************************************** # ***************************************************************************** sub Zeige_Auswahl { my $Auswahl = $Auswahl_Liste->get('active'); return if (!$Auswahl); print "Deine Auswahl: '$Auswahl'.\n"; my $Run_Prog = "D:\\eigene\\MY_DEVELOPMENT\\My_PERL_TK\\LIST_BOX_2\\$Auswahl"; system($^X, $Run_Prog); } # ***************************************************************************** # ** Sub LADE PATH ************************************************************ # ***************************************************************************** sub Load_Path { my $file_typ = [ ['PERL Program', '.pl' ], ['All Files', '*' ], ]; my $dn = $mw->getOpenFile(-filetypes=>$file_typ); my $file = $dn; my $dn = dirname($file); my $sl = "/"; print "Pfad ist: $dn$sl"; if (defined $dn and $dn ne '') { $laden_entry->delete(0, 'end'); $laden_entry->insert('end', $dn); } } # ***************************************************************************** # ** Sub Run_Perl_Prog ******************************************************** # ***************************************************************************** sub Run_Perl_Prog { my $DoIt_1 = $laden_entry->get(); if(!$DoIt_1 || $DoIt_1 eq ''){ $mw->messageBox(-message=>" Bitte zuerst ein Programm auswählen.", -type=>"OK"), return 1; } print "Dateinamen: $DoIt_1 \n"; my $tmp_1 = system(qx($^X $DoIt_1)); }