예제 #1
0
파일: mshtml.py 프로젝트: peter23/pywebview
from webview.serving import resolve_url
from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html, js_bridge_call
from webview.js import alert
from webview.js.css import disable_text_select

import clr

clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Collections')
clr.AddReference('System.Threading')

import System.Windows.Forms as WinForms
from System import IntPtr, Int32, Func, Type, Environment, Uri
from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF

clr.AddReference(interop_dll_path('WebBrowserInterop.dll'))
from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx

logger = logging.getLogger('pywebview')

settings = {}


class MSHTML:
    class JSBridge(IWebBrowserInterop):
        __namespace__ = 'MSHTML.JSBridge'
        window = None

        def call(self, func_name, param, value_id):
            return js_bridge_call(self.window, func_name, json.loads(param),
                                  value_id)
예제 #2
0
import System.Windows.Forms as WinForms
from System import IntPtr, Int32, Func, Type, Environment
from System.Threading import Thread, ThreadStart, ApartmentState
from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF

from webview import OPEN_DIALOG, FOLDER_DIALOG, SAVE_DIALOG, _js_bridge_call
from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html

from .js import alert
from .js.css import disable_text_select

from webview.localization import localization
from webview.win32_shared import set_ie_mode

clr.AddReference(interop_dll_path())
from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx

logger = logging.getLogger('pywebview')


class BrowserView:
    instances = {}

    class JSBridge(IWebBrowserInterop):
        __namespace__ = 'BrowserView.JSBridge'
        api = None
        parent_uid = None

        def call(self, func_name, param):
            return _js_bridge_call(self.parent_uid, self.api, func_name, param)
예제 #3
0
    finally:
        winreg.CloseKey(net_key)


is_cef = forced_gui_ == 'cef'
is_edge = _is_edge() and forced_gui_ != 'mshtml'


if is_cef:
    from . import cef as CEF
    IWebBrowserInterop = object

    logger.debug('Using WinForms / CEF')
    renderer = 'cef'
elif is_edge:
    clr.AddReference(interop_dll_path('Microsoft.Toolkit.Forms.UI.Controls.WebView.dll'))
    from Microsoft.Toolkit.Forms.UI.Controls import WebView
    from System.ComponentModel import ISupportInitialize
    IWebBrowserInterop = object

    logger.debug('Using WinForms / EdgeHTML')
    renderer = 'edgehtml'
else:
    clr.AddReference(interop_dll_path('WebBrowserInterop.dll'))
    from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx

    logger.debug('Using WinForms / MSHTML')
    renderer = 'mshtml'


class BrowserView:
예제 #4
0
from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html, js_bridge_call
from webview.js import alert
from webview.js.css import disable_text_select

import clr

clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Collections')
clr.AddReference('System.Threading')

import System.Windows.Forms as WinForms
from System import IntPtr, Int32, Func, Type, Environment, Uri
from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF

clr.AddReference(
    interop_dll_path('Microsoft.Toolkit.Forms.UI.Controls.WebView.dll'))
from Microsoft.Toolkit.Forms.UI.Controls import WebView
from System.ComponentModel import ISupportInitialize

logger = logging.getLogger('pywebview')


class EdgeHTML:
    def __init__(self, form, window):
        self.pywebview_window = window
        self.web_view = WebView()

        life = ISupportInitialize(self.web_view)
        life.BeginInit()
        form.Controls.Add(self.web_view)
예제 #5
0
from webview.js import alert
from webview.js.css import disable_text_select

import clr

clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Collections')
clr.AddReference('System.Threading')

import System.Windows.Forms as WinForms
from System import IntPtr, Int32, String, Action, Func, Type, Environment, Uri
from System.Threading.Tasks import Task, TaskScheduler, TaskContinuationOptions
from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF

archpath = 'x64' if architecture()[0] == '64bit' else 'x86'
os.environ['Path'] = interop_dll_path(archpath) + ';' + os.environ['Path']
clr.AddReference(interop_dll_path('Microsoft.Web.WebView2.Core.dll'))
clr.AddReference(interop_dll_path('Microsoft.Web.WebView2.WinForms.dll'))
from Microsoft.Web.WebView2.WinForms import WebView2, CoreWebView2CreationProperties
from Microsoft.Web.WebView2.Core import CoreWebView2Environment

logger = logging.getLogger('pywebview')


class EdgeChrome:
    def __init__(self, form, window):
        self.pywebview_window = window
        self.web_view = WebView2()
        props = CoreWebView2CreationProperties()
        #props.UserDataFolder = os.path.join(os.getcwd(), 'profile')
        props.UserDataFolder = os.path.join(os.environ['LOCALAPPDATA'],
예제 #6
0
파일: winforms.py 프로젝트: r0x0r/pywebview
import System.Windows.Forms as WinForms
from System import IntPtr, Int32, Func, Type, Environment
from System.Threading import Thread, ThreadStart, ApartmentState
from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF

from webview import OPEN_DIALOG, FOLDER_DIALOG, SAVE_DIALOG, _js_bridge_call, config
from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html

from .js import alert
from .js.css import disable_text_select

from webview.localization import localization
from webview.win32_shared import set_ie_mode

clr.AddReference(interop_dll_path())
from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx

logger = logging.getLogger('pywebview')

is_cef = config.gui == 'cef'

if is_cef:
    from . import cef as CEF


class BrowserView:
    instances = {}

    class JSBridge(IWebBrowserInterop):
        __namespace__ = 'BrowserView.JSBridge'