他アプリケーションのGUI操作 – プログラミング – Home

他アプリケーションのGUI操作
 
通知
すべてクリア

[解決済] 他アプリケーションのGUI操作


TAKI
 TAKI
(@TAKI)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

初めての事で困っています。助けて下さい。
ソースコードの提示されていないWindowsアプリケーションを
制御するアプリケーションの作成をしなければならないのですが、
GUIの操作でアプリケーションのボタンやメニューの操作は可能でしょうか?
(座標を算出して行うのでしょうか?)
また、その方法が掲載されている書籍を知っている方がいらっしゃれば
書籍名だけでも良いのでご教授願います。
みなさま宜しくお願い致します。


引用未解決
トピックタグ
TAKI
 TAKI
(@TAKI)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

すいません。記述し忘れました。
開発環境はWindows98で
言語はVC++6.0です。


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

spy++でそのアプリのメッセージやらハンドルやらを調査しておき
擬似的にSendMessage()するとか。

#動作の保証はできかねますけど。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 24年前
投稿: 312
 

// ウィンドウクラスが分かるウィンドウの場合
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で確認したので違いがあったらすまんです


返信引用
TAKI
 TAKI
(@TAKI)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

Bunさん、kuさん、
レスありがとうございました。
spy++で行けそうです。
これでいってみます。
本当にありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました