IronPython 2.0 Alpha4 で追加された"-X:PreferComDispatch"オプションって、何の役に立つの?
IronPython 2.0 Alpha4が出ました。
早速、OPC Dialyさんの所で簡単に訳してもらっています。(英語ダメぽな私にとって、とっても有難いっす)
で、ここで言及されている、"-X:PreferComDispatch
"オプションなんですが、説明では、以下のように解説されています。
-X:PreferComDispatch起動オプション。IDispatchインターフェイスをもつCOMコンポーネントを直接操作可能にするオプション。つまり、ラッパアセンブリの事前作成がいらない。
百聞は一見に如かず。まずは、試してみましょう。
IronPython1 posted by (C)wacky
…判ります?
以前、私が書いたネタでは、以下のように作業して、初めてActiveXが使えていました。
しかし、"-X:PreferComDispatch
"オプションを使うと、以下のように直接Excelを制御する事ができます。
import clr from System import Type, Activator t = Type.GetTypeFromProgID("Excel.Application") ex = Activator.CreateInstance(t) ex.Visible = True wd = ex.Workbooks.Add() ws = wd.Sheets[1] for y in range(1, 10): ws.Cells[y, 1].Value = y
IronPython2 posted by (C)wacky
ちなみに、IDispatchインタフェースのダイレクトサポートしていると言うだけあって、オブジェクトに対して dir する事ができます。
(きっと内部で、IDispatch::GetIDsOfNamesメソッド or IDispatch::GetTypeInfoメソッド を呼び出しまくりんぐでしょう)
>>> import clr >>> from System import Type, Activator >>> t = Type.GetTypeFromProgID("Excel.Application") >>> ex = Activator.CreateInstance(t) >>> dir(ex) ['ActivateMicrosoftApp', 'ActiveCell', 'ActiveChart', 'ActivePrinter', 'ActiveSh eet', 'ActiveWindow', 'ActiveWorkbook', 'AddChartAutoFormat', 'AddCustomList', ' <略> ection', 'SendKeys', 'SetDefaultChart', 'Sheets', 'SheetsInNewWorkbook', 'ShowCh artTipNames', 'ShowChartTipValues', 'ShowToolTips', 'ShowWindowsInTaskbar', 'Sta ndardFont', 'StandardFontSize', 'StartupPath', 'StatusBar', 'TemplatesPath', 'Th isWorkbook', 'ToString', 'Top', 'TransitionMenuKey', 'TransitionMenuKeyAction', 'TransitionNavigKeys', 'Undo', 'Union', 'UsableHeight', 'UsableWidth', 'UserCont rol', 'UserLibraryPath', 'UserName', 'VBE', 'Value', 'Version', 'Visible', 'Vola tile', 'Wait', 'Width', 'WindowState', 'Windows', 'WindowsForPens', 'Workbooks', 'WorksheetFunction', 'Worksheets', '_Default', '_Evaluate', '_Run2', '__class__ ', '__delattr__', '__doc__', '__getattr__', '__getattribute__', '__getitem__', ' __hash__', '__init__', '__module__', '__new__', '__nonzero__', '__reduce__', '__ reduce_ex__', '__repr__', '__setattr__', '__str__']
"-X:TabCompletion
"オプションと合わせて使うと、補完機能が働いて、まさしくウマーな状態です。
要するに
- "
-X:PreferComDispatch
"を使うと、tlbimpを使わなくてOK - "
-X:TabCompletion
"と合わせて、一挙両得
という事です。はい。