Win7マシン+VB6で制御
7へのVB6インストールはうまくいかない
追記です。ネットをしらべるとうまくいく例もあるみたいだけど、こちらの環境では7へのVB6インストールうまくいかない。コンポネントが追加できない。
いまだにVB6で制御するマシンがある
数年前にこの問題は金で解決したと思い込んでいただけだった。脳みそがバグってる。冷静にアレをみてみると、対応オペレーティングシステムは、Windows7までだ。10以降には対応してないと明示してある。なにを思ってこんなものを買ったんだろう?なぞだ?
もしかしたらXPじゃなければいいと思った?
当時はまだマシン制御用パソコンとしてXPが現役だった。もちろんネット接続できないけど、制御するだけなら別に問題はない。そう考えることもできた。だとするとなぜあの時点であのソフトを追加購入したのだろうか?もしかして、VB6からvb.netへのリファクタリングを自分で行おうとはりきっていたのか。
あれから数年が経過し。。。
リファクタリングの意欲すっかり減退。それでもマシン再立ち上げせざるを得なくなり、VB6プログラムを動かすこととなってしまった。
最初XPマシンでなんとかしようとした
それは、すぐみつかった。平成31年の夏に使った実績がある。それは筆者の心の支えだ。しかしなんとなく挙動がおかしい。むかしはすんなり立ち上がったはずのプログラム(vbp)が起動せず、変なエラーメッセージがでてくる。XPマシンは(マザボとHDDが)最近こわれた。バックアップソフトで救済して、代わりのXPマシンを準備したけど、おそらくバックアップが完全ではなく、必要なコンポーネントがインストールされてないのだ。しかも光学ドライブ(ODD)が壊れてるのかトレイがひらかない。SATA接続のODDは二つほど余っているはず、それのどちらかを見つけ出してくれば、インストールできるはず。
そうまでして、XPマシンにこだわる必要あるか。
うごかないODDを目の前に筆者は冷静となる。冷静になって!いつまでXPつかうの?XPにこだわる必要ないのでは?
横にはWin7マシンがある。
こちらでなんとかする方策はないものだろうか。ネットでいろいろとしらべてみる。Win7にもVB6がインストールできるとの情報が・・これは有用。VBの前に手元にあるという単なるそれだけの理由でコンポネントインストールをこころみた。
コンポネントインストール成功
おそらくコンポネント(SDK)についてはインストール成功したっぽい. 幸か不幸かWin7は、32ビットなので成功したのだろうか。あとはVB6のインストールだなぁ。。。
こちらのXPマシンは?
将来的に廃棄処分か。
追記:あきらめの悪いたちなのか?
あきらめのわるいたちなのか?XPマシンにいろいろなのをインストールしてしまっている自分がいる。
VB6.0 に管理者権限がないと。
VB6.EXE のプロパティ → [互換性] タブ → [すべてのユーザーの設定を変更] → [管理者としてこのプログラムを実行する] にチェック
VB6.0 の起動時に毎回 UAC のウィンドウで問い合わせが来ますが、少なくともレジストリエラーは発生しなくなり
初めて VB6.0 を起動するよりも前に設定すること。
Windows7 HomeEdition (x86) での例を挙げすと、コマンドプロンプト(Cmd.exe)を管理者権限で起動する。
regsvr32 で手動でOCXファイルを登録しなおし
regtlib.exe で、タイプライブラリを再登録すると良いよう。
regsvr32 /u C:\Windows\System32\MSCOMCTL.OCX
regsvr32 C:\Windows\System32\MSCOMCTL.OCX
C:\Windows\regtlib.exe C:\Windows\system32\msdatsrc.tlb
Win7側のVB6は・・
あまりうまくいかない。コンポネントの追加についての挙動がストレンジなのだ。
一方のXPマシンは・・
なんかこっちは光学ドライブが壊れてたけど、代替手段で、インストールやコピーできたような気がする。こちらはコンポネントが見つかりません系のエラーがでる。こいつはコンポーネントをふたたびコピペすれば修復されそう。こっちのほうが有望なのかな?