C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 136 を表示中)
■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」は宣言済みですか?
返信 編集キー/


管理者用

- Child Tree -