亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? eventlog.pm

?? ARM上的如果你對(duì)底層感興趣
?? PM
字號(hào):
#
# EventLog.pm
#
# Creates an object oriented interface to the Windows NT Evenlog 
# Written by Jesse Dougherty
#

package Win32::EventLog;

$VERSION = $VERSION = '0.05';

require Exporter;
require DynaLoader;
#use Win32;

die "The Win32::Eventlog module works only on Windows NT"
	unless Win32::IsWinNT();

@ISA= qw( Exporter DynaLoader );
@EXPORT = qw(
	EVENTLOG_AUDIT_FAILURE
	EVENTLOG_AUDIT_SUCCESS
	EVENTLOG_BACKWARDS_READ
	EVENTLOG_END_ALL_PAIRED_EVENTS
	EVENTLOG_END_PAIRED_EVENT
	EVENTLOG_ERROR_TYPE
	EVENTLOG_FORWARDS_READ
	EVENTLOG_INFORMATION_TYPE
	EVENTLOG_PAIRED_EVENT_ACTIVE
	EVENTLOG_PAIRED_EVENT_INACTIVE
	EVENTLOG_SEEK_READ
	EVENTLOG_SEQUENTIAL_READ
	EVENTLOG_START_PAIRED_EVENT
	EVENTLOG_SUCCESS
	EVENTLOG_WARNING_TYPE
);

sub AUTOLOAD {
    my($constname);
    ($constname = $AUTOLOAD) =~ s/.*:://;
    # reset $! to zero to reset any current errors.
    $!=0;
    my $val = constant($constname, @_ ? $_[0] : 0);
    if ($! != 0) {
	if ($! =~ /Invalid/) {
	    $AutoLoader::AUTOLOAD = $AUTOLOAD;
	    goto &AutoLoader::AUTOLOAD;
	}
	else {
	    my ($pack,$file,$line) = caller;
	    die "Unknown Win32::EventLog macro $constname, at $file line $line.\n";
	}
    }
    eval "sub $AUTOLOAD { $val }";
    goto &$AUTOLOAD;
}


#
# new()
#
#   Win32::EventLog->new("source name", "ServerName");
#
sub new
{
    my $c = shift;
    die "usage: PACKAGE->new(SOURCENAME[, SERVERNAME])\n" unless @_;
    my $source = shift;
    my $server = shift;
    my $handle;

    # Create new handle
    OpenEventLog($handle, $server, $source);
    return bless  {'handle' => $handle,
		   'Source' => $source,
		   'Computer' => $server }, $c;
}

#
# Open (the rather braindead old way)
# A variable initialized to empty must be supplied as the first
# arg, followed by whatever new() takes
#
sub Open {
    $_[0] = Win32::EventLog->new($_[1],$_[2]);
}

sub Backup
{
    $self = shift;
    die " usage: OBJECT->Backup(FILENAME)\n" unless @_ == 1;
    my $filename = shift;
    my $result;

    $result = BackupEventLog($self->{'handle'},$filename);
    unless ($result) { $! = Win32::GetLastError() }
    return $result;
}

# Read
# Note: the EventInfo arguement requires a hash reference.
sub Read
{
    $self = shift;

    die "usage: OBJECT->Read(FLAGS, RECORDOFFSET, HASHREF)\n" unless @_ == 3;

    my ($readflags,$recordoffset) = @_;
    my ($result, $datalength, $dataoffset, $sid, $length);
    my ($reserved, $recordnumber, $timegenerated, $timewritten, $eventid);
    my ($eventtype, $numstrings, $eventcategory, $reservedflags);
    my ($closingrecordnumber, $stringoffset, $usersidlength, $usersidoffset);

    # The following is stolen shamelessly from Wyt's tests for the registry. 

    $result = ReadEventLog($self->{'handle'},
			   $readflags,
			   $recordoffset,
			   $header,
			   $source,
			   $computer,
			   $sid,
			   $data,
			   $strings);

    ($length,
     $reserved,
     $recordnumber,
     $timegenerated,
     $timewritten,
     $eventid,
     $eventtype,
     $numstrings,
     $eventcategory,
     $reservedflags,
     $closingrecordnumber,
     $stringoffset,
     $usersidlength,
     $usersidoffset,
     $datalength,
     $dataoffset) = unpack('l6s4l6', $header);

    # get the text message here
    my $message='';
    GetEventLogText($source, $eventid, $strings, $numstrings, $message) if ($result);

    # make a hash out of the values returned from ReadEventLog.
    my %h = ( 'Source'			=> $source,
	      'Computer'		=> $computer,
	      'Length'			=> $datalength,
	      'Category'		=> $eventcategory,
	      'RecordNumber'		=> $recordnumber,
	      'TimeGenerated'		=> $timegenerated,
	      'Timewritten'		=> $timewritten,
	      'EventID'			=> $eventid,
	      'EventType'		=> $eventtype,
	      'ClosingRecordNumber'	=> $closingrecordnumber,
	      'User'			=> $sid,
	      'Strings'			=> $strings,
	      'Data'			=> $data,
	      'Message'			=> $message,
	    );

    if (ref($_[2]) eq 'HASH') {
	%{$_[2]} = %h;		# this needed for Read(...,\%foo) case
    }
    else {
	$_[2] = \%h;
    }
    unless ($result) { $! = Win32::GetLastError() }
    return $result;
}

sub Report
{
    my $self = shift;
    
    die "usage: OBJECT->Report( HASHREF )\n" unless @_ == 1;

    my $EventInfo = shift;
    my $result;

    if ( ref( $EventInfo)  eq "HASH" ) {
	my ($length, $reserved, $recordnumber, $timegenerated, $timewritten);
	my ($eventid, $eventtype, $numstrings, $eventcategory, $reservedflags);
	my ($closingrecordnumber, $stringoffset, $usersidlength);
	my ($usersidoffset, $source, $data, $strings);

	$eventcategory		= $EventInfo->{'Category'};
	$source			= $self->{'Source'};
	$computer		= $self->{'Computer'};
	$length			= $EventInfo->{'Length'};
	$recordnumber		= $EventInfo->{'RecordNumber'};
	$timegenerated		= $EventInfo->{'TimeGenerated'};
	$timewritten		= $EventInfo->{'Timewritten'};
	$eventid		= $EventInfo->{'EventID'};
	$eventtype		= $EventInfo->{'EventType'};
	$closingrecordnumber	= $EventInfo->{'ClosingRecordNumber'};
	$strings		= $EventInfo->{'Strings'};
	$data			= $EventInfo->{'Data'};

	$result = WriteEventLog($computer,
				$source,
				$eventtype,
				$eventcategory,
				$eventid,
				$reserved,
				$data,
				$strings);
    } 
    else {
	die "Win32::EventLog::Report requires a hash reference as arg 3\n";
    }

    unless ($result) { $! = Win32::GetLastError() }
    return $result;
}

sub GetOldest
{
    my $self=shift;
	    
    die "usage: OBJECT->GetOldest( SCALAREF )\n" unless @_ == 1;
    my $result = GetOldestEventLogRecord( $self->{'handle'},$_[0]);
    unless ($result) { $! = Win32::GetLastError() }
    return $result;
}

sub GetNumber
{
    my $self=shift;

    die "usage: OBJECT->GetNumber( SCALARREF )\n" unless @_ == 1;
    my $result = GetNumberOfEventLogRecords($self->{'handle'}, $_[0]);
    unless ($result) { $! = Win32::GetLastError() }
    return $result;
}

sub Clear
{
    my $self=shift;

    die "usage: OBJECT->Clear( FILENAME )\n" unless @_ == 1;
    my $filename = shift;
    my $result = ClearEventLog($self->{'handle'}, $filename);
    unless ($result) { $! = Win32::GetLastError() }
    return $result;
}

bootstrap Win32::EventLog;

1;
__END__

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re热这里只有精品视频| 欧美精品亚洲一区二区在线播放| 色哟哟亚洲精品| 日韩欧美资源站| 一区二区在线观看视频| 国产成人综合视频| 91精品国产欧美一区二区| 亚洲免费观看在线视频| 国产伦精品一区二区三区免费迷| 欧美日韩的一区二区| 亚洲欧美日本在线| 成人午夜激情影院| 欧美精品一区二区久久婷婷| 午夜欧美电影在线观看| 色素色在线综合| 中文字幕在线观看不卡视频| 国产揄拍国内精品对白| 欧美一级日韩免费不卡| 亚洲一区在线观看免费 | 丝袜a∨在线一区二区三区不卡| 日韩影院在线观看| 亚洲高清免费视频| 一本到不卡免费一区二区| 国产高清在线精品| 亚洲在线免费播放| 国产精品久久影院| 日韩欧美国产麻豆| 色综合婷婷久久| av在线不卡电影| 看电视剧不卡顿的网站| 亚洲伊人色欲综合网| 亚洲永久精品大片| 国产精品欧美久久久久无广告| 久久99热狠狠色一区二区| 日韩一区二区三区在线观看| 日韩成人dvd| 日韩一级完整毛片| 久久草av在线| 久久久久久99久久久精品网站| 国产麻豆成人精品| 国产精品久久久久影院老司| 99精品久久免费看蜜臀剧情介绍| 欧美国产综合一区二区| 国产成人在线视频网址| 中文字幕精品在线不卡| 风间由美一区二区三区在线观看 | 在线观看日产精品| 亚洲精品成人在线| 日韩免费观看2025年上映的电影| 天天做天天摸天天爽国产一区 | 日韩av在线播放中文字幕| 欧美军同video69gay| 蜜桃av一区二区三区| 欧美精品一区二区三| 成人黄页毛片网站| 一区二区免费在线播放| 制服丝袜av成人在线看| 久久国产精品免费| 中文字幕+乱码+中文字幕一区| 91在线观看成人| 丝袜诱惑亚洲看片| 久久亚洲一区二区三区四区| 成人一级片网址| 亚洲一级片在线观看| 欧美一区二区三区思思人| 国产激情视频一区二区在线观看| 亚洲欧美视频在线观看视频| 777精品伊人久久久久大香线蕉| 精品在线免费观看| 亚洲精选免费视频| 日韩午夜小视频| 色综合夜色一区| 美腿丝袜在线亚洲一区| 中文字幕一区二区三区不卡在线 | 久久久一区二区三区| www.日韩大片| 蜜桃av一区二区三区电影| 国产精品毛片大码女人| 欧美男女性生活在线直播观看| 国产精品一二三| 偷拍日韩校园综合在线| 国产欧美一区二区三区网站| 欧美日韩免费观看一区二区三区| 国产精品99久久久久久久vr| 性欧美疯狂xxxxbbbb| 中文字幕不卡的av| 日韩免费视频线观看| 91国产视频在线观看| 成人午夜av电影| 男男视频亚洲欧美| 亚洲图片欧美色图| 亚洲精品视频在线观看网站| 精品成人a区在线观看| 欧美精品 日韩| 91蝌蚪porny九色| 高清国产一区二区| 国内久久精品视频| 美日韩一区二区| 亚洲va欧美va天堂v国产综合| 中文字幕一区二区三区色视频| 久久综合色婷婷| 久久综合国产精品| 日韩你懂的在线播放| 在线观看日产精品| 在线亚洲免费视频| 91年精品国产| 99久久精品国产一区二区三区 | 国产在线精品一区二区三区不卡| 亚洲国产人成综合网站| 一区二区三区中文字幕| 亚洲欧洲精品成人久久奇米网| 久久久久久久电影| 久久久久久久久99精品| 久久婷婷久久一区二区三区| 日韩精品一区二区在线| 日韩三级视频在线看| 欧美一区二区三区四区高清| 91精品国产美女浴室洗澡无遮挡| 欧洲一区二区av| 欧洲视频一区二区| 欧美日韩国产电影| 91精品国产综合久久久久久久久久 | 国产日韩欧美不卡在线| 日本高清无吗v一区| 欧美三级三级三级| 欧美精品xxxxbbbb| 日韩欧美亚洲另类制服综合在线| 欧美精品乱码久久久久久按摩| 欧美精品一二三| 亚洲精品在线观看网站| 欧美精品一区二区久久婷婷| 国产欧美日韩亚州综合| 国产精品欧美久久久久无广告| 中文字幕一区二| 亚洲一区影音先锋| 免费高清成人在线| 国产精品一区二区三区乱码| 成人一级视频在线观看| 欧美视频在线观看一区| 日韩欧美专区在线| 国产精品美女久久久久aⅴ| 亚洲精品国产成人久久av盗摄| 亚洲成人在线观看视频| 毛片一区二区三区| 成人白浆超碰人人人人| 欧美日韩一级二级| 精品99久久久久久| 亚洲欧美另类综合偷拍| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品一二一区| 日本韩国欧美在线| 精品国一区二区三区| 亚洲欧美日韩久久| 国产又粗又猛又爽又黄91精品| 91国产丝袜在线播放| 国产亚洲欧美在线| 午夜精品福利视频网站| 成人一区在线观看| 欧美一区二区三区日韩| 国产精品久久久久婷婷二区次| 亚洲成人免费在线| 97se亚洲国产综合自在线不卡| 欧美肥妇free| 亚洲人吸女人奶水| 精品亚洲欧美一区| 色8久久精品久久久久久蜜| 久久影院午夜论| 亚洲国产视频a| 国产 欧美在线| 日韩午夜在线播放| 亚洲成人免费看| 99久久免费国产| 久久久一区二区三区| 日韩电影在线观看电影| 色综合久久中文字幕综合网| 久久久久久久久久久久久久久99| 亚洲第一在线综合网站| 91女人视频在线观看| 国产女人aaa级久久久级| 美国一区二区三区在线播放| 欧美性xxxxxxxx| 一区二区三区资源| caoporen国产精品视频| 久久久久国产免费免费| 蜜桃av噜噜一区| 日韩一区二区电影在线| 调教+趴+乳夹+国产+精品| 欧美视频一二三区| 亚洲欧美日韩在线不卡| eeuss鲁片一区二区三区| 中文一区二区在线观看| 国产成人精品一区二| 久久久久久免费| 国产成人精品免费在线| 精品sm捆绑视频| 国产精品一级片在线观看| 久久女同精品一区二区| 久久99精品久久久久久动态图 | 欧美日韩亚洲综合| 亚洲一级二级在线|