🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52306

Jak przesłać 'dowolny klawisz' do komendy

#52306
From: piecia aka dracorp
Date: Thu, 06 Oct 2011 17:00
73 lines
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-mail

Show 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