2013-03-06 95 views
0

我寫了一個腳本來連接到主機系統,並使用Win32 :: GUI模塊運行一些命令來輸入命令。Perl win32 :: GUI線程

正在進行中時,GUI會凍結並且在完成之前無響應。

任何人都可以告訴我如何實現此場景的線程。

+0

你需要在這裏展示一些代碼... – 2013-03-06 08:35:47

回答

0
use strict; 

use warnings;use Net::Telnet; use Win32::API; use Win32::GUI();

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

my $font = Win32::GUI::Font->new(-name => "Comic Sans MS", -size => 8,); 
$main->AddLabel(-text => "Welcome ", -pos => [ 10, 10 ],); 
$main->AddLabel(-text => "Enter Host Name/IP : ", -pos => [ 10, 33 ], ); 
my $t= $main->AddTextfield(-name => 'tfResults', -text => "", -pos => [ 125, 30 ], -size => [ 100, 25 ], -tabstop => 1,); 
my $my_but = $main->AddButton(-text => "Submit",-name => 'btQuery', -pos => [ 235, 30 ],-size => [ 50, 25 ],); 
$main->Show(); 
Win32::GUI::Dialog(); 

sub btQuery_Click 
{ 

    my $txt1=$t->Text; 
    my $telnet = new Net::Telnet ( Timeout=>1800, Errmode=>'die', ); 
    chomp $txt1; 
    $telnet->open($txt1); 

    $telnet->waitfor('/login: $/i'); 
    $telnet->print('root'); 
    $telnet->waitfor('/Password: $/i'); 
    $telnet->print('dangerous'); 
    $telnet->waitfor('/# $/i'); 
    print "\nConnected to host :$txt1 "; 

    $main->AddLabel(-text => " Enter custom cmd:",-pos => 100, 100 ,-size => 250, 125 ,); 
    my $t1= $main->AddTextfield(-name => 'tfResults2',-text => "",-pos => 130, 100 ,-size => 100, 25 ,); 
    my $submit=$main->AddButton(-text => "Submit",-name => 'Unix_submit',-pos => 250, 100 ,-size => 50, 25 ,); 



sub Unix_submit_Click { } 

    } `