visualbasic6.0で開発をしています。
例えば、同親内の子コントロールに同じ「edit」クラスが2つ存在していたとします。
私は、ハンドルを掴むのにクラス名とキャプション名で掴んでいます。
しかし、クラス名は一緒で、キャプション名は存在しません。
すると、2つのコントロールを区別することができません。
現在は、FindWindowExで取得したハンドルを、アプリケーション「spy」等であっているか確認しています。
上記のような、クラス名とキャプションで判断できないものは、皆さんどのようにハンドルを取得していますか? 自分のように順次取得して、順番で判断していますか? だとしたら、FindWindowExで取得した順番はOS環境や、取得する時々で変わったりしないモノなのでしょうか?
よろしくお願いします。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
「edit」とあるところからも、VC++等で作成された他アプリのWindowハンドルを取ってくる、というのが目的なのでしょうか?
そもそもTextBoxであればhwndプロパティがありますからこのような心配は無用ですからね(^^;
>2つのコントロールを区別することができません。
私なら、あまりスマートではないですが、editコントロールということでクライアント座標から判断しますね。
クライアント座標はOS環境やデスクトップサイズ等では変わりません(そういう仕様にしてあれば別の話ですが)から。
No.6
- 回答日時:
確かにControlIDでもよさそうですね(^^;
>具体的にControlIDを指定してハンドルを掴む行為はどのような、API?を使用すればよろしいのでしょうか?
#5さんが紹介しているGetDlgCtrlID()を使えばいいですね。
またはGetDlgItem()とか。
FindWindowEx()でコントロールのhwndを列挙しながら、GetDlgCtrlID()でコントロールIDをチェックしていく、と言う感じになると思います。
親ウインドウのHWND&コントロールIDが分かっていれば、GetDlgItem()でもOKだと思います。
No.7
- 回答日時:
コントロールIDでも一意とは限らないんですけども。
staticコントロールなんて固定の文字列だったら慣例的に-1だし、意識的に同じコントロールID振ることも出来ます。
もちろん位置やサイズも一意になるかといわれると確実にはならないですけどね。
でもどちらが確実かといわれると位置になると思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- 不動産鑑定士・土地家屋調査士 合筆された地積測量図の取得(登記情報提供サービス) 1 2022/07/13 00:30
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- DIY・エクステリア この部品、どうやって直せばいいでしょうか? DIYやプラモデル工作が得意な方、教えてください 3 2023/01/14 13:10
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- 弁護士・行政書士・司法書士・社会保険労務士 行政書士試験の民法についての質問になります。 時効についての質問になります。 問 Aが甲債権の担保と 1 2023/07/06 21:51
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
WinAPIで電卓をクリック
Visual Basic(VBA)
-
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
親ウインドウにあるOKボタンを押す方法
Visual Basic(VBA)
-
-
4
EnumChildWindowsの使い方(VBA)
Visual Basic(VBA)
-
5
他アプリケーション’(ウィンドウ)のハンドル取得方法
Visual Basic(VBA)
-
6
他のウィンドウのボタンを自動的に押したい
C言語・C++・C#
-
7
VBAでコントロールのハンドルを取得したい
Visual Basic(VBA)
-
8
他アプリの操作(メニューバー)
Visual Basic(VBA)
-
9
Excel VBA で外部アプリケーションのコンテキストメニューを操作したい
その他(プログラミング・Web制作)
-
10
API32 コントロールのEditテキストの文字列の取得・出力について
Visual Basic(VBA)
-
11
ウィンドウを最前面にできません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォーム上の現在アクティブな...
-
コンボボックスの文字によるif...
-
VBA ユーザーフォームの Keypre...
-
VBA_カレンダーコントロールの...
-
VB.NETで、DataGridのヘッダー...
-
'ckbl' コントロールは作成され...
-
カメラスクロールするのを動画...
-
VB6.0 実行時エラー 374について
-
With~EndWithの省略部分と引数...
-
エクセルVBAユーザーフォーム・...
-
全てのオブジェクトのプロパテ...
-
カレンダーコントロールの使用...
-
asp.netでToolTipコントロール...
-
エクセル・VBA CheckBoxのオブ...
-
ExcelにてListviewが表示できない
-
エクセルVBAでオプションボタン...
-
間違えて配置してしまったコン...
-
C#で角が丸いテキストボックス
-
VB6のユーザーコントロールの受...
-
EXCELでactivexコントロールを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
(VBA)スピンボタンの大量...
-
エクセルVBAでオプションボタン...
-
C#で角が丸いテキストボックス
-
ユーザーフォームで動的(Me.Con...
-
アクセス特有の書き方?
-
間違えて配置してしまったコン...
-
VBAのエラーについて、”実行時...
-
コンボボックスの文字によるif...
-
変数をコントロール型で使用す...
-
chr関数の呼び出しで「プロ...
-
With~EndWithの省略部分と引数...
-
C#で自分のウインド・ハンド...
-
excelのリストボックスで選択し...
-
'ckbl' コントロールは作成され...
-
フォーム上の現在アクティブな...
おすすめ情報