###前提・実現したいこと
VB.NETで指定されたプリンタがインストールされているかについてWMI クエリを用いて実現しようと考えています。
その際に下記エラーメッセージが表示されました。
###発生している問題・エラーメッセージ
場所 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) 場所 System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext() 場所 MS21印刷.frmPrint.checkPrinter(String strPrinterName)
###ソースコード
Dim PrinterName As String = "プリンタ名" Dim mos As New System.Management.ManagementObjectSearcher("Select * from Win32_Printer") Dim moc As System.Management.ManagementObjectCollection = mos.Get() 'プリンタを列挙する Dim mo As System.Management.ManagementObject 'メイン処理 For Each mo In moc 'デフォルトのプリンタか調べる Dim attr As Long = Convert.ToInt64(mo("Attributes")) 'プリンタ一覧の中に指定プリンタが存在するか If String.Compare(PrinterName , mo("Name").ToString(), True) = 0 Then 'プリンタの情報はとれた場合 Console.WriteLine(mo("Name").ToString()) Exit For End If Next mo
###質問事項
質問事項として2点あります。
1.Marshal.ThrowExceptionForHRInternalとは何なのか
2.エラーの原因について
以上、よろしくお願い致します。
###補足情報(言語/FW/ツール等のバージョンなど)
OS:WindowsServer2012R2
言語:.Net Framework3.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/30 01:51