Archive for 4月 29th, 2012
-
Hello, Win32 API(Python) World!
Posted on 4月 29th, 2012 by cx20
Win32 API(Python)
Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
以下は Python にて ctypes ライブラリを使用した呼出し例である。ソースコード
import ctypes user32 = ctypes.windll.user32 user32.MessageBoxA( 0, "Hello, Win32 API(Python) World!", "Hello, World!", 0 )
実行方法
C:¥> python hello.py
実行結果
--------------------------- Hello, World! --------------------------- Hello, Win32 API(Python) World! --------------------------- OK ---------------------------
-
Hello, Win32 API(PHP) World!
Posted on 4月 29th, 2012 by cx20
Win32 API(PHP)
Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
以下は PHP にて COM ライブラリである DynamicWrapper を経由した Win32 API の呼出し例である。なお、PHP 5.4.5 / 5.3.15 より、COM サポートは既定では組み込まれていない為、使用するには、以下の設定を追加する必要がある。
PHP 設定
ソースコード
<?php $win32 = new COM("DynamicWrapper"); $win32->Register( "user32.dll", "MessageBoxA", "i=hhsu", "f=s", "r=l" ); $win32->MessageBoxA( 0, "Hello, Win32 API(PHP) World!", "Hello, World!", 0 ); ?>
なお、上記の “i=hhsu” は各引数の型を、”f=s” は呼び出し規約を、”r=l” は戻り値の型を表している。以下は主要なタイプ一覧である。詳細は「An Automation Object for Dynamic DLL Calls | Dr Dobb’s」を参照のこと。
タイプ 説明 a オートメーションオブジェクト(IDispatch*) c 符号なし文字型(unsigned char) d 倍精度浮動小数点数(double) f 単精度浮動小数点数(float) k COM オブジェクト(IUnknown*) h ハンドル(handle) l 整数型(long) p ポインタ(pointer) s 文字列(string) t 整数型(short) u 符号なし整数型(unsigned int) w ワイド文字列(wide string) 実行方法
C:¥> php -f hello.php
実行結果
--------------------------- Hello, World! --------------------------- Hello, Win32 API(PHP) World! --------------------------- OK ---------------------------