文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[Perl]Linux终端下的屏幕保护程序

[Perl]Linux终端下的屏幕保护程序

时间:2006-09-07  来源:huhuegg

#!/usr/bin/perl
#ver:    v0.1
#author: huhuegg
#date:   2006-09-07 16:50
#mail:   [email protected]
use strict;
use Term::Screen;
use Term::ReadPassword;
$SIG{INT}=sub {sleep 2;};
#default passwd => 'aaa'
my $def="aaa";
&screenwait; #sub#
sub screenexit () {
        print "exit screensave!\n";
        system("clear");
        exit;
}
sub screenwait () {
        my $time=0;
        while (1) {
                my $return;
                my $scr0 = new Term::Screen;
                #clear screen
                $scr0->clrscr();
                if (!($scr0->key_pressed())) {
                        #output screensave line
                        &screensave($time);
                        $time=$time+2;
                        sleep 2;
                } else {
                        eval { system('stty -raw echo'); };
                        $return=&passwd();
                        if ($return eq "ok") {
                                &screenexit;
                        } else {
                                $time=0;
                        }
                }
        }
}
sub screensave () {
        my @time=@_;
        my $scr = new Term::Screen;
        if (!defined($scr)) {
                die "new Term::Screen error!\n";
        }
        $scr->clrscr();
        my $y=rand(60);
        my $x=rand(120);
        $scr->at($x,$y)->bold()->puts("$time[0] sec no input!")->normal();
}
sub passwd () {
        #my $password = read_password('password: ');
        my $password = eval {$SIG{ALRM}=sub {return "timeout"};alarm(5);read_password('password: ');};
        alarm(0);
        chomp $password;
        if ($@ =~ /timeout/) {
                return "error";
        } else {
                if ("$password" eq "$def") {
                        #print "-";
                        return "ok";
                } else {
                        #print "--";
                        return "error";
                }
        }
}
相关阅读 更多 +
排行榜 更多 +
翌日波奇狗的历险记手机版下载

翌日波奇狗的历险记手机版下载

休闲益智 下载
怪兽远征安卓版下载

怪兽远征安卓版下载

角色扮演 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载