Code:
.....
class ExplorerEvents:
def OnNewWindow2(self, pDisp, Cancel):
#Cancel = True # ovo takodje ne radi
return (pDisp, True) # ali ovo radi lepo, prozori se ne otvaraju
def OnBeforeNavigate2(self, pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel):
print "OnBeforeNavigate2: ", URL
if URL == 'http://www.forbiden-site.com/':
Cancel = True # ovo ne radi
......
ie = win32com.client.DispatchEx("InternetExplorer.Application")
ie_events = win32com.client.WithEvents(ie, ExplorerEvents)
ie.Navigate(url)
pythoncom.PumpWaitingMessages()
itd ......
.....
class ExplorerEvents:
def OnNewWindow2(self, pDisp, Cancel):
#Cancel = True # ovo takodje ne radi
return (pDisp, True) # ali ovo radi lepo, prozori se ne otvaraju
def OnBeforeNavigate2(self, pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel):
print "OnBeforeNavigate2: ", URL
if URL == 'http://www.forbiden-site.com/':
Cancel = True # ovo ne radi
......
ie = win32com.client.DispatchEx("InternetExplorer.Application")
ie_events = win32com.client.WithEvents(ie, ExplorerEvents)
ie.Navigate(url)
pythoncom.PumpWaitingMessages()
itd ......
Sve je ovo lepo, ali je problem u sledecem: ne mogu da u OnBeforeNavigate2 sprecim da explorer ode na neki URL. Prema onome sto sam procitao trebalo bi da je dovoljno da se u OnBeforeNavigate2 Cancel postavi na True, medjutim ovo ne radi. Slican problem sam imao kod OnNewWindow2, kada sam hteo da sprecim da se otvaraju novi prozori, Cancel = True takodje nije radilo, ali sam nasao kako ustvari treba uraditi return (pDisp, True/False) i to je to. Medjutim za OnBeforeNavigate2 sam probao kojesta i nista ne radi.
Jel ima neko iskustva sa ovim ili makar ideju sta da uradim.
Never trust an operating system you don't have sources for.