WSHでWin32APIを呼び出す-その10
2005年7月7日
(←戻る)
あとは、WndProcスクリプトファイル名の指定と、トラックすべきメッセージの指定であるが、こちらの方はそれほど難しくはない。これらの機能のため、DLLに次の関数を追加した。
これに対応したスクリプト上での呼び出しは、以下のようになる。
これで、ほぼ一通りのことが出来るようになったのではないだろうか。そろそろ、このツールにバージョンを付けても良いだろう。とりあえず、ver0.1としておこう。
次は、このツールにどれくらいの能力があるのか調べるため、いくつかWindowsプログラムを作成してみようと思う。
(dwtools ver 0.1はここからダウンロードできます。サンプルとして、hello.vbs, openfile.vbsが付属しています。)
(続く)
あとは、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が付属しています。)
(続く)