Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
webbrowser.py73 linesDownload Raw Back to ocx
1# This demo uses the IE4 Web Browser control.2 3# It catches an "OnNavigate" event, and updates the frame title.4# (event stuff by Neil Hodgson)5 6import sys7 8import regutil9import win32api10import win32con11import win32ui12from pywin.mfc import activex, window13from win32com.client import gencache14 15WebBrowserModule = gencache.EnsureModule(16    "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 0, 1, 117)18if WebBrowserModule is None:19    raise ImportError("IE4 does not appear to be installed.")20 21 22class MyWebBrowser(activex.Control, WebBrowserModule.WebBrowser):23    def OnBeforeNavigate2(24        self, pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel25    ):26        self.GetParent().OnNavigate(URL)27        # print "BeforeNavigate2", pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel28 29 30class BrowserFrame(window.MDIChildWnd):31    def __init__(self, url=None):32        if url is None:33            self.url = regutil.GetRegisteredHelpFile("Main Python Documentation")34            if self.url is None:35                self.url = "http://www.python.org"36        else:37            self.url = url38        pass  # Dont call base class doc/view version...39 40    def Create(self, title, rect=None, parent=None):41        style = win32con.WS_CHILD | win32con.WS_VISIBLE | win32con.WS_OVERLAPPEDWINDOW42        self._obj_ = win32ui.CreateMDIChild()43        self._obj_.AttachObject(self)44        self._obj_.CreateWindow(None, title, style, rect, parent)45        rect = self.GetClientRect()46        rect = (0, 0, rect[2] - rect[0], rect[3] - rect[1])47        self.ocx = MyWebBrowser()48        self.ocx.CreateControl(49            "Web Browser", win32con.WS_VISIBLE | win32con.WS_CHILD, rect, self, 100050        )51        self.ocx.Navigate(self.url)52        self.HookMessage(self.OnSize, win32con.WM_SIZE)53 54    def OnSize(self, params):55        rect = self.GetClientRect()56        rect = (0, 0, rect[2] - rect[0], rect[3] - rect[1])57        self.ocx.SetWindowPos(0, rect, 0)58 59    def OnNavigate(self, url):60        title = "Web Browser - %s" % (url,)61        self.SetWindowText(title)62 63 64def Demo(url=None):65    if url is None and len(sys.argv) > 1:66        url = win32api.GetFullPathName(sys.argv[1])67    f = BrowserFrame(url)68    f.Create("Web Browser")69 70 71if __name__ == "__main__":72    Demo()73 
codekingpro/portable-devtools · Team Ai