プログラミング

WSHでWin32APIを呼び出す-その10

2005年7月7日

(←戻る)
 あとは、WndProcスクリプトファイル名の指定と、トラックすべきメッセージの指定であるが、こちらの方はそれほど難しくはない。これらの機能のため、DLLに次の関数を追加した。

char WndProcScript[256]="wscript.exe wndproc.vbs";

void __stdcall DwSetWndProcScript( char* T )
{
    int i;
    for (i=0;i<256;i++) 
        if ( (WndProcScript[i]=T[i])==0) break;
}

unsigned long TrackHandle[256];
unsigned long TrackMsg[256];
int TrackNum=0;

long __stdcall DwSetTrackedHandleMsg(unsigned long hWnd, unsigned long uiMsg)
{
    if (256<=TrackNum) return 0;
    TrackNum++;
    TrackHandle[TrackNum]=hWnd;
    TrackMsg[TrackNum]=uiMsg;
    return -1;
}

void __stdcall DwClearTrackedHandleMsg()
{
    TrackNum=0;
}


 これに対応したスクリプト上での呼び出しは、以下のようになる。

'Set WndProc script file name
 Call UserWrap.DwSetWndProcScript("wscript.exe wndproc.vbs")

'Set hWnd and Msg that must be tracked
Call UserWrap.DwSetTrackedHandleMsg(hWnd,WM_PAINT)
Call UserWrap.DwSetTrackedHandleMsg(hWnd,WM_DESTROY)

これで、ほぼ一通りのことが出来るようになったのではないだろうか。そろそろ、このツールにバージョンを付けても良いだろう。とりあえず、ver0.1としておこう。

 次は、このツールにどれくらいの能力があるのか調べるため、いくつかWindowsプログラムを作成してみようと思う。

(dwtools ver 0.1はここからダウンロードできます。サンプルとして、hello.vbs, openfile.vbsが付属しています。)

(続く)

コメント

kat (2005年7月9日 23:58:04)

ver0.1.0.1は未だ色々不都合在り。ver0.1.1.1でこれらの不都合が解消される見込み。

Katsumi (2005年7月11日 01:08:59)

ver0.1.1.1は次のチャプターでダウンロードできます。

コメント送信