Last Updated 2005/07/15
Programming Tips Visual C++  索 引 
他アプリケーションの選択文字列取得
2005/07/15

他アプリケーションで選択した文字列を取得するのは普通の方法では少々やっかいである.

// 入力フォーカスのあるフレーム取得
CWnd *lpAppWnd = GetForegroundWindow(); 
// コピーメッセージを発行
VERIFY(lpAppWnd->SendMessage(WM_COMMAND,ID_EDIT_COPY)); 

としてコピーコマンドを発行しても通用するのはワードパットと Developer Studio ぐらいである.
これはそのアプリケーションが ID_EDIT_COPY のメニューを持っていて,それがコピーに割り当てられているからである.

同じように WM_COPY を送っても,これはエディットボックス系にしか通用しない.

最後の手段は CTRL + C を送ることである.

keybd_event(VK_CONTROL, 0x1D, 0, 0);
keybd_event('C', 0x2E, 0, 0);
keybd_event('C', 0x2E, KEYEVENTF_KEYUP, 0); 
keybd_event(VK_CONTROL, 0x1D, KEYEVENTF_KEYUP, 0);


参照
前後のTips
他アプリケーションの選択文字列取得

DSS ProgrammingTipsCGI Ver2.01