最終更新日 2024-09-25

「hmPy・IronPython」の例題④ .pyファイルの利用

概要

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;

外部の「.py」ファイルを用意

上記マクロと同じディレクトリに、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)