lele9013 发表于 2012-4-15 19:00:36

关于ie 历史记录 最后一个访问的地址 问题



#include <Array.au3>
#include <file.au3>

Global $WshShell, $Shell, $FileSystem, $History_Url, $History_Txt, $UrlList
Global Const $strPath = @TempDir & "\urllist.txt"

$WshShell = ObjCreate("WScript.Shell")
$Shell = ObjCreate("Shell.Application")
$FileSystem = ObjCreate("Scripting.FileSystemObject")

$History_Url = $Shell.Namespace($WshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\history"))
$History_Txt = $FileSystem.CreateTextFile($strPath, True)

RecSrch($History_Url)

_ArrayDisplay($UrlList, 'URL')

Func RecSrch($obj)
      For $objItem In $obj.Items()
                If $objItem.IsFolder() Then
                        $objSubFolder = $objItem.GetFolder
                        For $objSubItem In $objSubFolder.Items()
                              If $objSubItem.IsFolder = False Then
                                        If StringLeft($objSubFolder.GetDetailsOf($objSubItem, 0), 4) = 'http' Then _
                                                      $History_Txt.WriteLine($objSubFolder.GetDetailsOf($objSubItem, 0))
                              EndIf
                        Next
                        RecSrch($objSubFolder)
                EndIf
      Next
      _FileReadToArray($strPath, $UrlList)
EndFunc   ;==>RecSrch

这个代码可以显示 所有历史记录是按 名称排序的

能否按访问时间呢?

my788522 发表于 2012-4-15 21:27:49

你可以自己打开这个文件夹
每个文件夹下是访问的url快捷方式文件 可以获取到文件的创建修改时间什么的
再对其中的进行排列

lixiaolong 发表于 2012-4-16 09:48:40

自己改改吧.
#include <Array.au3>

Global $WshShell, $Shell, $FileSystem, $History_Url, $UrlList, $i = 0

$WshShell = ObjCreate("WScript.Shell")
$Shell = ObjCreate("Shell.Application")
$FileSystem = ObjCreate("Scripting.FileSystemObject")
$History_Url = $Shell.Namespace($WshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\history"))

RecSrch($History_Url)

;~ ReDim $UrlList[$i]
_ArrayDisplay($UrlList, 'URL')

Func RecSrch($obj)
        For $objItem In $obj.Items()
                If $objItem.IsFolder() Then
                        $objSubFolder = $objItem.GetFolder
                        For $objSubItem In $objSubFolder.Items()
                                If $objSubItem.IsFolder = False Then
                                        If StringLeft($objSubFolder.GetDetailsOf($objSubItem, 0), 4) = 'http' Then
                                                $UrlList[$i] = $objSubFolder.GetDetailsOf($objSubItem, 0)
                                                $UrlList[$i] = $objSubFolder.GetDetailsOf($objSubItem, 2)
                                                ClipPut($objSubFolder.GetDetailsOf($objSubItem, 2))
                                                $i += 1
                                                ReDim $UrlList[$i + 1]
                                        EndIf
                                EndIf
                        Next
                        RecSrch($objSubFolder)
                EndIf
        Next
EndFunc   ;==>RecSrch

haijie1223 发表于 2012-4-16 14:32:19

回复 3# lixiaolong


    对象从哪里学的?

lixiaolong 发表于 2012-4-16 19:19:31

回复 4# haijie1223

其实这个代码是我学过的vbs的一部分拼起来的.
然后用工具转换成au3,(论坛有个叫VAConvert的工具),转换后再修改代码.

都是在网上学到的{:face (427):}

lele9013 发表于 2012-4-16 21:15:19

我发现不是很准.你可以看看Ie自带的历史纪录

lele9013 发表于 2012-4-16 21:15:22

我发现不是很准.你可以看看Ie自带的历史纪录
页: [1]
查看完整版本: 关于ie 历史记录 最后一个访问的地址 问题