■80013 / ) |
Re[1]: VB6作成ソフトをVB.NETから操作したい |
□投稿者/ 魔界の仮面弁士 (743回)-(2016/06/03(Fri) 17:31:06)
|
■No80008 (shu11 さん) に返信 > Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ > (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
ハンドルは IntPtr 型にしておきましょう。 もしも Integer で宣言するなら、アプリを x86 ビルドにする必要があります。
それと、Win9x 系が淘汰された現在では、ANSI 版である必要は無いので、 Unicode 版の API で実装しておいた方が良いかと思います。 (とはいえ、世の中のサンプルの多くが A 系のままだったりはしますが)
> FindWindow、FindwindowExにてウインドウ、ボタンのハンドルを取得し、SendMessageにて、 > ボタンを押させるだけのものですが、応答しない状態です。
得られたウィンドウハンドルが正しい事は確認済みでしょうか?
> hwnd1 = FindWindow("FormDC", "Firmware Write Program ")
第二引数の末尾に空白が含まれているのはワザとでしょうか。
また、第一引数を "FormDC" にしているのは何故でしょうか。
相手が VB6 製であるのなら、第一引数は "ThunderRT6FormDC" (EXE の場合) または "ThunderFormDC" (開発環境の場合) だと思いますが…。
> hwnd2 = FindWindowEx(hwnd1, 0, "CommandButton", "Normal Write") こちらも同様で、"ThunderRT6CommandButton" あるいは "ThunderCommandButton" というクラス名のはず。
> SendMessage(hwnd2, BM_CLICK, 0, 0) ' Button Click
「Const BM_CLICK As Integer = &HF5」は宣言済みですか?
|
|