最終更新日 2024-09-25
「hmPy・IronPython」ミニブラウザ
概要
.NETにおいては、「http://」URLをプロセスとして実行すると、
Webに通常関連付けられているブラウザが起動しますが、
対象のWebページが「Webアプリ的なも」や「社内のhtmlページ的なもの」など定型・定型アプリであるとわかっているならば、
フル機能を持つWebブラウザではなく、Webコンポーネントを利用するのもアリでしょう。
以下のものを「miniweb.mac」として保存してみましょう。
#PY = loaddll( hidemarudir + @"\hmPy.dll" );
$url = "http://www.google.com/";
#_ = dllfuncw(#PY, "DoString", R"IPY(
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Web")
clr.AddReference("System.Drawing")
import System
import System.IO
import System.Windows.Forms
from System.Windows.Forms import *
from System.Web import HttpUtility
from System.Drawing import *
from System import *
url = hm.Macro.Var["$url"]
import clr
clr.AddReference('System.Windows.Forms')
from System.Windows.Forms import (
Form,
DockStyle,
WebBrowser,
TextBox,
Keys
)
class MyWebForm(Form):
def __init__(self):
self.Text = 'ミニブラウザ'
self.Width = 800
self.Height = 600
self.wb = WebBrowser()
self.wb.Navigate(url)
self.tb = TextBox()
self.tb.Text = url
# Layout
self.tb.Dock = DockStyle.Top
self.wb.Dock = DockStyle.Fill
self.tb.KeyPress += self.OnKeyPress
self.wb.Navigated += self.OnNavigated
self.Controls.Add(self.wb)
self.Controls.Add(self.tb)
# Event handling
def OnKeyPress(self, sender, event):
if event.KeyChar == '\r':
self.wb.Navigate(self.tb.Text.strip())
def OnNavigated(self, sender, event):
self.tb.Text = event.Url.ToString()
f = MyWebForm()
f.ShowDialog()
)IPY"
);
freedll( #PY );