急遽、WINAPIを使用する必要ができ、とりあえず動作するまではできたのですが、
WIN98SEでチェックをすると上手く動作してくれません。
制作環境は、
OS WIN2000 SP4
言語 VB6 SP1
チェック環境は、
OS WIN2000 SP4,WIN XP SP1,WIN98SE
VB 各未インストール
使用しているAPIは、
・FindWindow
・OpenProcess
・TerminateProcess
・CloseHandle
・SetParent
・MoveWindow
・GetWindowLong
・SetWindowLong
・ShowWindow
です。
症状としましては、エラーが出るわけでもなく、APIを使用している機能だけが
動作しません。
具体的には、
自身のウィンドウサイズをAPIで変更しているが、反映されない
呼び出した別exeが表示されない(サウンドだけが鳴っている)
(サイズ調整、タイトルバーの削除、親子構造の変更がきかない。)
といったところです。
上記の現象は、WIN2000、WINXPでは起きませんでした。
いろんなサイトを調べたのですが、今のところ解決法は見つかっていません。
どのようにすればよいのか教えていただけないでしょうか?
確実に異常が発生するなら、(多分)問題箇所を絞り込めます。
ログファイルを作って、プログラムの流れを追い、
どのAPIの呼び出しで異常が発生しているかなどを調べます。
APIの戻り値やGetLastErrorの値等をログにすると、
判りやすいのではないでしょうか。
# 釈迦に説法かもしれませんが、APIが原因でない可能性もあります。
# プログラムを見て、こうなるはず、とか、
# 実行された状況を見て、こうなったはず、とか思っても、
# それが見当違いである可能性があります。
# それらを実際に確かめるためにも、ログファイルは手軽で
# 有効な手段です。
名前間違えた。ぼけぼけだ。
たいちうさん、ありがとうございます。
# 釈迦に説法かもしれませんが、APIが原因でない可能性もあります。
# プログラムを見て、こうなるはず、とか、
# 実行された状況を見て、こうなったはず、とか思っても、
# それが見当違いである可能性があります。
# それらを実際に確かめるためにも、ログファイルは手軽で
# 有効な手段です。
実はVBというかプログラムは、昔(かなり)に少しかじっただけですので、
とてもありがたいアドバイスです。
いろいろ試したところ、APIの宣言は今までForm内でprivate宣言していたのですが、
これを標準モジュールでpublic宣言にすると、だいたいのものが動くようになりました。
WIN98系は、そうゆうものなのでしょうか。
ただ、タイトルバーを削除する部分だけが上手く動きません。
たいちうさんのおっしゃるように、ログファイルなどいろいろ試してやってみようと
思います。
ありがとうございました。