Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > delete the browser cache of IE through ruby

Reply
Thread Tools

delete the browser cache of IE through ruby

 
 
Arihan Sinha
Guest
Posts: n/a
 
      10-20-2010
Dear All,
I want to delete the browser cache of IE through ruby.

I am using IE7.0/IE9.0 in win7 platform.
I got the below code but its bit confusing . so can anyone pls guide
what exactly needs to be done/ method to be called so that I can use it.


Temporary IE file location is :-
'/Users/'+ENV['USERNAME']+'/AppData/Local/Microsoft/Windows/Temporary
Internet Files/'

################################################

#!/bin/ruby
#
#
#
#
#
# set TEMPIF=%USERPROFILE%\Local Settings\Temporary Internet Files
# %TEMPIF%\Content.IE5\Index.DAT


require 'Win32API'

#
#
# HashMethods = a Hash that can be accessed with methods
# e.g. h = MethodHash.new
# h['street'] = 'Broadway'
# h.street = 'Broadway'
# puts h.street ===> Broadway

require 'delegate'

#TEMPIF =
'/Users/'+ENV['USERNAME']+'/AppData/Local/Microsoft/Windows/Temporary
Internet Files'
#
#puts
Dir.glob('/Users/'+ENV['USERNAME']+'/AppData/Local/Microsoft/Windows/Temporary
Internet Files/Content.IE5/*')

class MethodHash < SimpleDelegator
def initialize h = {}
super h
end

def method_missing(method_name, *args)
name = method_name.to_s
if name.ends_with?('=')
self[ name.chop ] = args[0]
else
self[ name ]
end
end
end


class String
def ends_with?(substr)
len = substr.length
self.reverse() [0 .. len-1].reverse == substr
end

def starts_with?(substr)
len = substr.length
self[0 .. len-1] == substr
end

alias start_with? starts_with?
alias begin_with? starts_with?
alias begins_with? starts_with?
alias end_with? ends_with?

# String each() operator reads line-by-line
# These functions return characters
def each_char
self.each_byte{|x| yield x.chr }
end
def collect_char
r = []
self.each_byte{|x| r << x.chr }
r
end
end

def main
w = get_api('wininet',FUNCS)
i = 0

info,infosize = get_first_info(w)
cache = w.FindFirstUrlCacheEntry.Call(nil,info,infosize)
if cache != 0
begin
len, source_file_ptr, local_file_ptr = info.unpack 'LLL'
w.DeleteUrlCacheEntry.Call(source_file_ptr)
i += 1
info,infosize = get_next_info( w, cache )
end while w.FindNextUrlCacheEntry.Call(cache, info, infosize) !=
0
end
w.FindCloseUrlCache.Call(cache)
i
end

def get_first_info(api)
sizenum = [0,0].pack('L*')
buf = [1024,0].pack('L*').ljust(1024)
r = api.FindFirstUrlCacheEntry.Call(nil,nil,sizenum)
n = sizenum.unpack('L')[0]
info = sizenum.ljust(n)
[info,sizenum]
end

def get_next_info(api, handle)
sizenum = [0,0].pack('L*')
buf = [1024,0].pack('L*').ljust(1024)
r = api.FindNextUrlCacheEntry.Call(handle,nil,sizenum)
n = sizenum.unpack('L')[0]
info = sizenum.ljust(n)
[info,sizenum]
end


#
# Win32 API used in this file is listed here.
# Each system call can be instatiated like this
# DeleteUrlCacheEntry = Win32API.new("wininet",
"DeleteUrlCacheEntry", ['P'], 'V')
# Instead, the functions are defined dynamically from this list:
#
FUNCS = {
'FindFirstUrlCacheEntry' => ['ppp','n'],
'FindNextUrlCacheEntry' => ['npp','n'],
'DeleteUrlCacheEntry' => ['n', 'n'],
'FindCloseUrlCache' => ['n', 'n']
}

#
# get_api returns a hash with Win32 API system calls
# Usage:
# api = get_api('Kernel32', {'GetLastError'=>['V', 'N'],...})
#
def get_api(library, function_hash)
f = MethodHash.new
function_hash.each{|funcname,types|
in_types = types[0].collect_char{|x| x}
out_type = types[1]
f[funcname] = Win32API.new(library, funcname, in_types,
out_type)
}
f
end


def getLastError
f = Win32API.new('Kernel32', 'GetLastError', ['V'], 'N')
f.call
end


if __FILE__ == $0
n = main
print "Deleted #{n} items\n"
end
###########################################

--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to delete the browser cache through ruby Arihan Sinha Ruby 9 10-22-2010 09:55 AM
Forcing a browser to re-render an image from its URL location andnot from the browser's cache Edward Diener Javascript 11 10-26-2007 08:18 PM
UserControl on IE. Delete from browser cache ms@mstn.com ASP .Net 2 04-25-2005 06:15 PM
UserControl on IE. Delete from browser cache ms@mstn.com ASP .Net Building Controls 2 04-25-2005 06:15 PM
delete cache browser josepe ASP General 2 01-21-2004 06:35 PM



Advertisments