初めての事で困っています。助けて下さい。
ソースコードの提示されていないWindowsアプリケーションを
制御するアプリケーションの作成をしなければならないのですが、
GUIの操作でアプリケーションのボタンやメニューの操作は可能でしょうか?
(座標を算出して行うのでしょうか?)
また、その方法が掲載されている書籍を知っている方がいらっしゃれば
書籍名だけでも良いのでご教授願います。
みなさま宜しくお願い致します。
すいません。記述し忘れました。
開発環境はWindows98で
言語はVC++6.0です。
spy++でそのアプリのメッセージやらハンドルやらを調査しておき
擬似的にSendMessage()するとか。
#動作の保証はできかねますけど。
// ウィンドウクラスが分かるウィンドウの場合
CWnd* pWnd = FindWindow(ウィンドウクラス, NULL);
// ウィンドウクラスが分からない場合やダイアログの場合
// CWnd* pWnd = FindWindow(NULL, ウィンドウタイトル);
if (pWnd) {
UINT uMsg = WM_COMMAND;
WORD wNotifyCode = 0;
// メニューの場合
WORD wID = 57664;
// ボタンの場合
// WORD wID = IDOK;
HWND hWndSend = NULL;
WPARAM wParam = MAKEWPARAM(wID, wNotifyCode);
LPARAM lParam = (LPARAM)hWndSend;
pWnd->PostMessage(uMsg, wParam, lParam);
}
メニューのIDを調べる方法
Spy++を起動して、ターゲットとなるウィンドウを選択する
1.「スパイ」-「メッセージ」を選びファインダーツールでターゲットのウィンドウを選ぶ
2.「メッセージタブ」を選択し、「すべてクリア」ボタンを押す
3.「表示するメッセージ」からWM_COMMANDだけを選ぶ
4.調べたいメニューを選択する
5.<...> ... P WM_COMMAND wNotifyCode...(メニューから送信)wID:57664
この場合は57664がメニューIDなので保存しておく
ボタンIDを調べる方法
1.「スパイ」-「ウィンドウ検索」を選びファインダーツールでターゲットのボタンを選ぶ
2.表示のラジオボタンをプロパティを選んで「OK」ボタンを押す
3.最初の画面のコントロールIDがボタンのIDを示している
Windows2000で確認したので違いがあったらすまんです
Bunさん、kuさん、
レスありがとうございました。
spy++で行けそうです。
これでいってみます。
本当にありがとうございました!