IronPythonの例題のひとつとなります。
hmPyでは、秀丸マクロ内に直接IronPythonを埋め込むのではなく、
外部に別途「.py」としてファイルを用意しても利用可能です(拡張子はなんでもOKです)
ファイルの文字コードはcp932(sjis)としてください。
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); #_ = dllfuncw(#PY, "DoFile", currentmacrodirectory + @"\form1.py"); // 外部ファイルの実行 $f_title = dllfuncstrw(#PY, "GetStrVar", "f_title" ); message("秀丸マクロに戻ってきました:" + $f_title); #_ = dllfuncw(#PY, "DoString", R"IPY( import System f_title = f_title.Replace('①', '②') # ①を②に置き換え。 )IPY" ); $f_title = dllfuncstrw(#PY, "GetStrVar", "f_title" ); message("再び秀丸マクロに戻ってきました:" + $f_title); freedll( #PY ); endmacro;
上記マクロと同じディレクトリに、form1.pyというファイルを用意しましょう。
ファイルの文字コードはcp932(sjis)なので、気をつけてください。
# coding: cp932 import clr clr.AddReference('System.Drawing') clr.AddReference('System.Windows.Forms') from System.Drawing import * from System.Windows.Forms import * class MyForm(Form): def __init__(self): # Pythonのコンストラクタは__init__です。 pass Application.EnableVisualStyles() form = MyForm() form.Text = '表示①' f_title = form.Text # 受け渡し用途 Application.Run(form)