裏側になっている、別アプリに対してあたかもユーザーが操作を行っているようにする、プログラムを作ろうとしています。
VC6とXPで作成・確認しています。
表側になってる状態なら、mouse_eventやkeybd_eventでユーザーが操作している様にすることが出来るのは確認しています。
WM_KEYUPやWM_LBUTTONDOWNなどを送ればいいのかと思いそのように作成してみましたが、どうにも、うまく動いてくれません。
特にキー入力が動きません。
送信先のウインドウがおかしいのでしょうか?
キー・マウスの送信先のウインドウの取得方法等、注意点をご教授ください。
ウインドウハンドルが正しく取得できていないのではないでしょうか。
別アプリの親に対してメッセージ送っているとか。
MFCなら
BOOL CHogeHogeDlg::OnInitDialog()
{
// 略
// TODO: 特別な初期化を行う時はこの場所に追加してください。
SetTimer(0,1000,0);
}
void CHogeHogeDlg::OnTimer(UINT nIDEvent)
{
POINT pnt;
GetCursorPos(&pnt);
HWND hwnd = ::WindowFromPoint(pnt);
::SendMessage(hwnd,WM_CHAR ,(unsigned int)0x41,0);
CDialog::OnTimer(nIDEvent);
}
こんな感じで試してみては?
#ちょっといたずら気味
ツイート | ![]() |