FindWindow & EnumChildProcを使う win32 その1
#include <stdio.h>
#include <windows.h>
// コールバック関数
BOOL CALLBACK EnumChildProc( HWND hWnd, LPARAM lParam )
{
TCHAR szBuff[ 1024 ];
GetWindowText( hWnd, szBuff, sizeof(szBuff) );
printf( "├[%s]\n", szBuff );
return TRUE;
}
// メイン関数
int main( void )
{
HWND hCalc;
if ( (hCalc = FindWindow(NULL,"Form1")) != NULL ){
printf( "Form1のコントロール列挙\n" );
EnumChildWindows( hCalc, EnumChildProc, NULL );
}
else
printf("Form1 not found");
getchar();
return 0;
}というプログラムで、別プロセスのVCLプログラム(Form1)を探して、そこに含まれるコントロールを列挙する。

これが動いている状態で、上記プログラムを実行すると、

が得られます。コントロールとして、movie,still,captureのボタンあるいはeditボックス(中身が5)というものが把握されています。適切にイベントをそれぞれのコントロールに送れれば、遠隔操作が可能となります。上記で”5”というのは録画のデフォルトの長さ(秒数)なんだけど、これでサーチするのもなんなので少し改良しましたが、次の記事で。


コメント