Internet Explorerの履歴情報取得
Win32::OLEを使うためWindowsが対象です。
use strict;
use Win32::OLE;
my $wshell = Win32::OLE->new('Shell.Application') or die "OLE Error.\n";
my $ie_history_folder = $wshell->Namespace(0x22);
my $item_list = get_item_list($ie_history_folder);
foreach my $item (@$item_list) {
printf "url : %s\n", $item->{url};
printf "title: %s\n", $item->{title};
printf "date : %s\n", $item->{date};
print "\n";
}
sub get_item_list{
my $folder = shift;
my $item_list = [];
my $items = $folder->items;
for(my $i = 0; $i < $items->count; $i++){
my $item = $items->item($i);
if($item->IsFolder){
my $list = get_item_list($item->GetFolder);
push @$item_list, @$list;
} else {
my $url = $folder->GetDetailsOf($item, 0);
my $title = $folder->GetDetailsOf($item, 1);
my $date = $folder->GetDetailsOf($item, 2);
push @$item_list, {
url => $url,
title => $title,
date => $date,
};
}
}
return $item_list;
}
