#!C:\perl\bin\wperl.exe -w use strict; use warnings; use Win32::Process; use Tk; my $mw = MainWindow->new; $mw->Label(-text => 'Oracle DB:')->pack; my $db = $mw->Entry( -width => 20, )->pack; $db->bind('Tk::Entry', '', \&connect); $db->bind('Tk::Entry', '', sub { exit }); $db->focus; my $message = $mw->Message(-justify => 'center', -text => '')->pack; MainLoop; sub connect { my $dbname = $db->get; my ($server) = `tnsping $dbname` =~ /HOST=([^)]*)/; if (defined $server) { my $ProcessObj; Win32::Process::Create($ProcessObj, "c:\\winnt\\system32\\mstsc.exe", "mstsc /v:$server", 0, NORMAL_PRIORITY_CLASS, ".")|| die ErrorReport(); exit; } else { $message->configure(-text => "The database \"$dbname\" can't be found"); } } sub ErrorReport { print Win32::FormatMessage( Win32::GetLastError() ); }