度々お世話になります。
現在、VB6.0で開発しております。
フォームにいくつかのボタンを配置して、そのボタンを押下された時、
参照設定されたACTIVEX.EXEを呼び出す(同時起動)ような画面を
作成中です。
ボタンを押す毎に、そのACTIVEX.EXEの処理が起動するだろうと思っていたのですが、1つ目のボタンを押したあと2つ目のボタンは押せない状態になり
以下のようなメッセージが出力されます。
「コンポーネント(ACTIVEX.EXE名)が応答しないため、この操作を完了できません。[切替]を選択してコンポーネントをアクティブにしてからこの問題を解決して下さい」
何かわかる方いらっしゃいますでしょうか?
>1つ目のボタンを押したあと2つ目のボタンは押せない状態になり・・
これは
1.1つ目のボタンを押したら、2つ目のボタンが使えない状態になる
プログラムを書いている(ボタンのEnabled = False など)
2.ただ単に処理が重くなって、使えなくなった
のどちらでしょうか?おそらく後者だとは思いますが。
そのメッセージが発生する箇所のプログラムを明記してください。
どういったプログラムを書かれたかがわからないので
アドバイスできません。それとVB6のSPは当てていますか?
利用しているOSは何ですか?参照設定はどうなっていますか?
下記サイトも参考にしてください。ActiveX.exeの基礎的なことが
書かれています。
http://homepage2.nifty.com/nihon-nouen/programming-vbactivex.htm
随分昔にActiveX EXE作って、処理を行いましたが・・・
恐らく、ActiveX EXEを呼び出してその処理が終わっていない状態
で、次の処理をさせたらそうなります。
その場合、非同期的に結果を返すような構造にして・・・
結果を返すメソッドを定義するなりして、処理を呼び出し元が、
止まらないようにしてやれば・・・
もっとほかによい方法もあるかと思いますが、なんせ古いもので
コードが見当たりません。あしからず・・・
以上。参考まで
お世話になります。
オショウさんのおっしゃる通り、
「恐らく、ActiveX EXEを呼び出してその処理が終わっていない状態
で、次の処理をさせたらそうなります。」
のようです。
呼び出し先(ACTIVEX.EXE)を処理をTIMERの中で行うことで何とかなりそうです。
ありがとうございました。
ツイート | ![]() |