Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[Perl Tk]Control Panel v.1.0 (Local Shell)

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[Perl Tk]Control Panel v.1.0 (Local Shell)

Messaggioda The_Big_J0k3R » ven giu 19, 2009 12:00 pm

Ecco a voi una piccola shell che funziona in locale in perl con l'ausilio delle tk (librerie grafiche).
Si possono svolgere poche operazioni sia sulle directory che sui file:
+Directory
Creare una directory
Eliminare un directory
Aprire una directory (cioè spostarsi da una direcotry all'altra visualizzando anche i file)
+File
Creare un file
Eliminare un file
Vedere il source di un file
Dispne anche di un menu.....
Ecco il source:
Codice: Seleziona tutto
#!/usr/bin/perl   
use Tk;
use Cwd;

# Main Window
$main=MainWindow->new();
$main->minsize(930,399);
$main->maxsize(930,399);
$main->title("...:: Control Panel v.1.0 ::...");
$main->configure(-background=>'#000000');

#Menu
$menubar=$main->Menu();
$main->configure(-menu=>$menubar);

#Menu Buttons
$file=$menubar->cascade(-label=>"File", -underline=>0, -tearoff=>0);
$edit=$menubar->cascade(-label =>"Edit", -underline=>0, -tearoff=>0);

## File Menu ##
$file->command(-label=>"Clear Directory", -underline=>0,
             -command=>sub { $txt_directory->delete('1.0','end'); } );
$file->command(-label=>"Clear File", -underline=>0,
             -command=>sub { $txt_file->delete('1.0','end'); } );
$file->command(-label =>"See Current Directory", -underline => 0,
             -command=>sub { $txt_directory->insert('end',"Your current directory is: \n", 'end',cwd, 'end',"\n \n"); } );
$file->separator();
$file->command(-label=>"Exit", -underline=>1,
             -command=>sub { exit } );

## Edit Menu ##
$insert1=$edit->cascade(-label =>"Directory", -underline => 0, -tearoff => 0);
$insert1->command(-label=>"Author",
                 -command=>sub { $txt_directory->insert('end',"Author: The Big J0k3R\n"); } );
$insert1->command(-label =>"Web Site",
                 -command=>sub { $txt_directory->insert('end',"Web Site: http://bigjoker.altervista.org\n");});
$insert1->command(-label =>"Email",
                 -command=>sub { $txt_directory->insert('end',"Email: bigjoker.....\n"); } );
$insert1->command(-label =>"Insert All",
                 -command=>sub { $txt_directory->insert('end',"Author: The Big J0k3R\n");
                                 $txt_directory->insert('end',"Web Site: http://bigjoker.altervista.org\n");
                         $txt_directory->insert('end',"Email: bigjoker.....\n");} );
           
$insert2=$edit->cascade(-label =>"File", -underline => 0, -tearoff => 0);
$insert2->command(-label=>"Author",
                 -command=>sub { $txt_file->insert('end',"Author: The Big J0k3R \n"); } );
$insert2->command(-label =>"Web Site",
                 -command=>sub { $txt_file->insert('end',"Web Site: http://bigjoker.altervista.org \n"); } );
$insert2->command(-label =>"Email",
                 -command=>sub { $txt_file->insert('end',"Email: bigjoker..... \n"); } );
           
$insert2->command(-label =>"Insert All",
                 -command=>sub { $txt_directory->insert('end',"Author: The Big J0k3R\n");
                                 $txt_directory->insert('end',"Web Site: http://bigjoker.altervista.org\n");
                         $txt_directory->insert('end',"Email: bigjoker.....\n");} );
           
           



#Left Aera
$top=$main->Frame(-background=>'#000000'
                 )->pack(-side=>'top', -fill=>'x');

$left=$top->Frame(-background=>'#000000',
                 )->pack(-side=>'left', -pady=>2, -padx=>15);

$dir=$left->Label(-text=>'Directory',
                  -font=>'16',
                  -background=>'#000000',
              -foreground=>'#ff0000')->pack(-anchor=>"n");

#Text Area
$txt_directory=$left->Scrolled('Text', -width=>60, -height=>20, -scrollbars=>'e')->pack ();
$txt_directory->insert('end',"Your current directory is: \n", 'end',cwd, 'end',"\n \n");   

$name_directory=$left->Entry(-textvariable=>\$directory,
                            )->pack();

$button1=$left->Button(-text=>"Open",
                       -background=>"#000000",
                       -foreground=>"#9f9f9f",
                       -activebackground=>"#000000",
                       -activeforeground=>"#ff0000",
                       -command=>sub { chdir($directory) || $main->messageBox(-message=>"Directory /$directory not accessible!", -type => "Ok");
                                  while ($files=glob('*')) {
                              $txt_directory->insert('end',"$files\n");
                              }
                              $txt_directory->insert('end',"Your current directory is: \n", 'end',cwd, 'end',"\n \n");
                            } )->pack(-side => "left");
           
$button2=$left->Button(-text=>"Delete",
                       -background=>"#000000",
                       -foreground=>"#9f9f9f",
                       -activebackground=>"#000000",
                       -activeforeground=>"#ff0000",
                       -command=>sub { rmdir($directory) || $main->messageBox(-message=>"Failed to remove $directory!", -type => "Ok") } )->pack(-side => "left");
                 
$button3=$left->Button(-text=>"Create",
                       -background=>"#000000",
                       -foreground=>"#9f9f9f",
                       -activebackground=>"#000000",
                       -activeforeground=>"#ff0000",
                       -command=>sub { mkdir( $directory, 777) || $main->messageBox(-message=>"Failed to create $directory!", -type => "Ok") } )->pack(-side => "left");

#Right Aera
$right=$top->Frame(-background=>"#000000",
                  )->pack(-side=>'right', -pady=>2, -padx=>15);
             
$dir=$right->Label(-text=>'File',
                   -font=>'16',
                   -background=>'#000000',
               -foreground=>'#ff0000')->pack(-anchor=>"n");

#Text Area
$txt_file=$right->Scrolled('Text', -width=>60, -height=>20, -scrollbars=>'e')->pack ();     

$name_file=$right->Entry(-textvariable=>\$file,
                        )->pack();

$button4=$right->Button(-text=>"Source",
                        -background=>"#000000",
                        -foreground=>"#9f9f9f",
                        -activebackground=>"#000000",
                        -activeforeground=>"#ff0000",
                        -command=>sub { open(FILE, $file) || $main->messageBox(-message=>"Cannot open $file!", -type => "Ok");
                                  @source=<FILE>;
                              close(FILE);
                              $txt_file->insert('end',"@source");
                              } )->pack(-side => "left");

$button5=$right->Button(-text=>"Delete",
                        -background=>"#000000",
                        -foreground=>"#9f9f9f",
                        -activebackground=>"#000000",
                        -activeforeground=>"#ff0000",
                        -command=>sub { unlink $file || $main->messageBox(-message=>"Failed to remove $file!", -type => "Ok")} )->pack(-side => "left");
                 
$button6=$right->Button(-text=>"Create",
                        -background=>"#000000",
                        -foreground=>"#9f9f9f",
                        -activebackground=>"#000000",
                        -activeforeground=>"#ff0000",
                        -command=>sub{
                      $fox=$txt_file->get('1.0','end');
                            open FILE ,">>" ,"$file"  || $main->messageBox(-message=>"Failed to create $file!", -type => "Ok");
                            print FILE $fox;
                            close FILE;
                     } )->pack(-side => "left");
                             
$j=$main->Label(-text=>'By The Big J0k3R',
                   -font=>'8',
                   -background=>'#000000',
               -foreground=>'#9f9f9f')->pack(-side=>'bottom');

MainLoop;

Ecco anche uno screen:
Immagine
Avatar utente
The_Big_J0k3R
Neo Iscritto
Neo Iscritto
 
Messaggi: 22
Iscritto il: ven giu 19, 2009 11:41 am

Re: [Perl Tk]Control Panel v.1.0 (Local Shell)

Messaggioda eDog » dom giu 21, 2009 10:56 am

Wow, mi ricorda quando volevo fare un mini SO in delphi.. [:D] [:D] [:D]
eDog,
"È meglio essere temuti o rispettati? Io dico: è troppo chiedere entrambe le cose?" - Tony Stark
Avatar utente
eDog
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3679
Iscritto il: sab dic 30, 2006 7:58 pm
Località: Vescovana (Padova)


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron
Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising