Article View: pl.comp.lang.perl
Article #52306Jak przesłać 'dowolny klawisz' do komendy
From: piecia aka dracorp
Date: Thu, 06 Oct 2011 17:00
Date: Thu, 06 Oct 2011 17:00
73 lines
2762 bytes
2762 bytes
Witam
Obudowuję polecenie udp-sender (http://udpcast.linux.lu/) za pomocą
interfejsu Curses:UI.
Nie wiem za bardzo jak obejść gdy program czeka na wciśnięcie dowolnego
klawisza aby wysłać dane.
Chciałbym aby naciśnięcie 'dowolnego klawisza' odbywała się przez
naciśnięcie odpowiedniego przycisku i żeby program 'nie reagował' na
wciskane klawisze klawiatury.
Co do drugiego to udp-sender ma opcję --nokbd ale wówczas po stronie
klienta, czyli udp-receiver musiałbym wciskać klawisz a wolałbym to
zrobić po stronie serwera.
Poniżej wystarczający fragment do testowania. Jakby ktoś mógł mnie
nakierować co przeczytać, bo aktualnie nie wiem z której strony się do
tego zabrać.
#v+
#!/usr/bin/perl
use strict;
use warnings;
use Curses::UI;
my $cui = new Curses::UI(
-clear_on_exit => 1,
);
my $window = $cui->add(
'window','Window',
-padtop => 1,
);
my $viewer = $window->add(
'viewer','TextViewer',
-border => 1,
-height => $window->height - 10,
);
my $button = $window->add(
'button','Buttonbox',
-y => -1,
-x => 1,
-buttons => [
{
-label => 'Prepare',
-onpress => \&execute,
-shortcut => 'p',
-value => 'prepare',
},
{
-label => 'Send',
-onpress => \&execute,
-shortcut => 's',
-value => 'send',
}
]
);
sub execute {
my $this = shift;
my $value = $this->get;
for($value){
if(/prepare/){
my $command = "udp-sender --file file 2>&1 |";
open(IN,$command);
while( defined( my $line = <IN>) ){
chomp($line);
$viewer->text($viewer->text.$line."\n");
$viewer->draw;
}
}elsif(/send/){
#wyślij dane
}
}
}
$cui->set_binding(sub{exit},"\cq");
$cui->mainloop;
#v-
--
piecia aka dracorp
pisz na: piotr kropka rogoza at wp kropka eu
Technical Details
Message-ID:
<pan.2011.10.06.17.00.36@dracorp.one.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
From: piecia aka dracorp <imie.nazwisko@wp.eu>
Newsgroups: pl.comp.lang.perl
Subject: Jak przesłać 'dowolny klawisz' do komendy
Date: Thu, 6 Oct 2011 17:00:36 +0000 (UTC)
Organization: http://onet.pl
Lines: 73
Message-ID: <pan.2011.10.06.17.00.36@dracorp.one.pl>
NNTP-Posting-Host: 83-145-150-143.cable-modem.tkk.net.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1317920436 20101 83.145.150.143 (6 Oct 2011 17:00:36 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Thu, 6 Oct 2011 17:00:36 +0000 (UTC)
User-Agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 30dc37b master)
X-face: &O(G<?G0x[)D}ri@2r:nnqjWG"C%v#'ES"T|m>Gaw3JWL>[XKRh^(75y8=DvLC1QXn9Vtc= !QWAS}|{A97ADU]x0*KE-Z>sKRlHMqyJ7c!=^wW,f#RXJ%e_@(U2YaNV10ucCf
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit