前提・実現したいこと
VBでプログラムを作成しています。
開発しているPC(Windows10)では特に問題なく動作するexeが、
デモ専用機(Windows Server 2008 R2 Standard)ではArgumentExceptionが発生してしまいます。
デモ機にVisual Studioを入れてデバッグ、というわけにもいかないため
二進も三進も行けないのが現状です。お知恵をお貸しいただければ幸いです。
具体的に申しますと、
普通の画面はデモ機でも問題ないのですが、
カメラを起動・撮影する画面に入ろうとすると必ず落ちます。
発生している問題・エラーメッセージ
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.ArgumentException: Invisible or disabled control cannot be activated at System.Windows.Forms.ContainerControl.SetActiveControlInternal(Control value) at System.Windows.Forms.ContainerControl.SetActiveControl(Control ctl) at TestScreen.frmImageEntry..ctor() at TestScreen.frmTest.TakePicture() at TestScreen.frmTest.txtTest_KeyDown(Object sender, KeyEventArgs e) at System.Windows.Forms.Control.OnKeyDown(KeyEventArgs e) at Allexceed.Control.MyTextBox.OnKeyDown(KeyEventArgs e) at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m) at System.Windows.Forms.Control.ProcessKeyMessage(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.TextBoxBase.WndProc(Message& m) at System.Windows.Forms.TextBox.WndProc(Message& m) at Allexceed.Control.TextBoxAlx.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 以下省略
該当のソースコード
一部抜粋
VB
1 2 Private Sub txtTest_KeyDown(Object sender, KeyEventArgs e) Handles txtTest.KeyDown 3 TakePicture() 4 End Sub 5
VB
1 ''' <summary> 2 ''' 画像撮影 3 ''' </summary> 4 ''' <remarks></remarks> 5 Private Sub TakePicture() 6 Dim dto As TestDto = _selectedData 7 8 '薬品画像登録画面の表示 9 Try 10 Using frm As New frmImageEntry 11 If frm.showForm(dto) Then dto.SnapShotImage = frm.ShotImage 12 End Using 13 14 Catch ex As Exception 15 Throw 16 End Try 17 End Sub
VB
1Public Class frmImageEntry 2 3 Public Sub New() 4 ' この呼び出しはデザイナーで必要です。 5 InitializeComponent() 6 7 ' InitializeComponent() 呼び出しの後で初期化を追加します。 8 9 If MyProject.Camera.CameraUtils.ExistCamera() Then 10 Try 11 _camera.CreateGraph(0) 12 _camera.CaptureStart(pnlShooting) 13 Catch ex As Exception 14 MessageBox.Show("カメラ表示に失敗しました。") 15 Me.DialogResult = Windows.Forms.DialogResult.Cancel 16 Me.Close() 17 End Try 18 Else 19 MessageBox.Show("カメラがない為、撮影は行えません。", "確認", MessageBoxButtons.OK, MessageBoxIcon.Warning) 20 End If 21 22 Me.ActiveControl = btnEntry 23 btnEntry.Focus() 24 Me.StartPosition = FormStartPosition.CenterScreen 25 End Sub 26 27 Private _camera As New MyProject.Camera.CCameraCapture 28 29#End Region
試したこと
- デモ機のFrameworkのバージョンを4→4.5に変更
→「このエラーは4.0の不具合」とネットで見たので、アップデートしてみましたがダメでした。
- デモ機で使用しているカメラを開発機で使用
→問題なく動作しました。カメラの不具合ではなさそうです。
補足情報(FW/ツールのバージョンなど)
.NET Framework 4 Client Profile
カメラ:LifeCam Studio Q2F-00021
情報が不足していたら追記しますので、コメントください。
回答1件
あなたの回答
tips
プレビュー