Archive for 6月 18th, 2012

  1. Hello, Win32 API(IronPython) World!

    Posted on 6月 18th, 2012 by cx20

    Win32 API(IronPython)

    Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
    以下は IronPython にて clrtype ライブラリを使用した Win32 API の呼出し例である。

    ソースコード

    import clr
    import clrtype
    import System
    from System.Reflection import BindingFlags
     
    class Win32(object):
        __metaclass__ = clrtype.ClrClass
     
        from System.Runtime.InteropServices import DllImportAttribute
        DllImport = clrtype.attribute(DllImportAttribute)
     
        @staticmethod
        @DllImport("user32.dll")
        @clrtype.accepts(System.IntPtr, System.String, System.String, System.UInt32)
        @clrtype.returns(System.Int32)
        def MessageBox(hwnd, text, caption, type): raise RuntimeError("Runtime Error")
     
    Win32.MessageBox(System.IntPtr.Zero, "Hello, Win32 API(IronPython) World!", "Hello, World!", 0)

    実行方法

    C:¥> ipy hello.py

    実行結果

    ---------------------------
    Hello, World!
    ---------------------------
    Hello, Win32 API(IronPython) World!
    ---------------------------
    OK   
    ---------------------------