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が付属しています。)
(続く)