ターミナルサーバーでの通信ポートエラーについて
始めて質問いたしますので宜しくお願い致します。
ターミナルサーバー(Windows Server 2003 R2 SP2)上でVB5のアプリを動かしています。
FormからMSCommのコマンドにて通信ポート(COM1)のラベルプリンタ(SATO SR412)に
印刷を行うのですが1回目の印刷ではポートも正常に開けて印刷されますが
フォームを閉じずにそのまま2回目を印刷した際に8012(デバイスが開けません)のエラーが
発生し印刷できません。
フォームを閉じると印刷は可能となります。
Windows XP SP3上で同じVB5のアプリを動かすとフォームを閉じなくても2回目の印刷が可能
となります。
ターミナルサーバー側の設定をどのように変更すればエラーが発生せず
印刷できるかご教授頂ける方、宜しくお願い致します。
ちなみにマイクロソフトのパッチ:838291は適用しています。
【デバッグを行った状態】
MSCommのコマンドにてデバッグを行った際、1回目の印刷時にはメッセージBOXで
状態を表示致しましたが正常にPortOpen=FALSEとなりポートがクローズされています。
2回目の印刷時にもポートがオープンされている場合にもPortOpen = Falseにて
一度、クローズしたのちPortOpen = Trueにて開こうとしていますがエラーとなります。
実行のコマンドは以下となります。
With X_oMSComm
If .PortOpen = True Then
.PortOpen = False
End If
.CommPort = 1
.DTREnable = True
.RTSEnable = True
.NullDiscard = False
.Settings = "9600,N,8,1"
.Handshaking = 0
.SThreshold = 0
.RThreshold = 0
.InputLen = 0
.PortOpen = True ← このコマンドにてエラーとなります。
End With
お礼
回答頂きありがとうございます。 とりあえずVB6ランタイムを削除するためVB6_CompSetup.msiファイルを起動して削除を実施してPCを再起動させました。 その後、再度VB6_CompSetup.msiファイルを起動してランタイムのインストールを実施して再起動。 再起動後にマクロ付きのエクセルファイルを立ち上げてもやはり同様のエラーが出てきてしまいます。 また、 メニューの「ツール(T)」→「その他のコントロール(A)…」→「コントロールの追加」ウィンドウの Microsoft Communications Control, virsion 6.0 これも表示されてきませんでした。 また気づいたことなのですが、電話のマークがwindowsXPのPCでは表示されるフォームでは、 windows8のエクセルでこのフォームを開く時にこのフォーム選択時だけ”その他のコントロール(A)…”これが無効化されていて「コントロールの追加」ウィンドウに進むことができないことがわかりました。 もし良ければ引き続き解決方法教えて頂けると助かります。
補足
お世話になっております。 他にもちょっとやってみたこととしてこちらに書かせて頂き増す。 ・こちらのWEBサイト NonSoft VB6(Visual Basic 6.0)ランタイムのインストール方法 http://homepage2.nifty.com/nonnon/Chinamini/20100001/20100717.html こちらのサイトでwindows7,8に関しては ※(例2)regsvr32.exe MSCOMM32.OCX ※(例3)regsvr32.exe MSWINSCK.OCX というのを管理者権限でやった方がよいということで遣ってみました。 また、 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1027494815 こちらのサイトで HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}のCompatibility Flagsの値を400hから 0に変更。 このレジストリ操作の内容があったのでこれもやってみましたが現在解決できなかったです。