0

わかりましたので、.Net からハンドルを取得しようとしているテキスト ボックスを含む Microsoft Access フォームがあります。

私のフォームは以下です:

frmTest

Spy++ を使用して、テキスト ボックス ハンドルを見つけました。スクリーンショーは以下のとおりです。

スパイプラス

このハンドルは私の PC または frmTest に固有のものですか? 同様に、別のコンピューターで frmTest を開いた場合、テキスト ボックスのハンドルは 001E1A6E のままになりますか?

ありがとう

4

2 に答える 2

3

ウィンドウが作成されると、ウィンドウ ハンドルが割り当てられます。アプリケーションを複数回実行すると、アプリケーション ウィンドウは毎回新しいウィンドウ ハンドルを取得します。また、アプリケーションがウィンドウを破棄して再作成すると、新しいハンドルも取得されます。

ハンドルはプロセス間で一意です。つまり、ウィンドウ ハンドルを別のアプリケーションに渡すことができ、それは引き続き有効です (カーネル ハンドルとは異なります)。それらがデスクトップごとに一意なのか、実行中のウィンドウのインスタンスごとに一意なのかはわかりません。


Spy++ からの情報を使用して、必要なFindWindow(Ex)コントロールへのハンドルを取得する一連の呼び出しを作成する必要があります。

于 2012-02-26T17:52:43.943 に答える
0

このウィンドウのこのインスタンスに対してのみ一意です。MS Access を完全に終了してアプリを再起動すると、別のハンドルが作成されます。

于 2012-02-26T17:52:24.957 に答える