- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:COMExceptionはハンドルされませんでしたとは?)
COMExceptionはハンドルされませんでしたとは?
このQ&Aのポイント
- PC内のドライブとシリアルナンバーを取得するツールを作成していますが、「COMExceptionはハンドルされませんでした。」というエラーが出て止まってしまいます。
- VisualBasic2008EE初心者でエラーの内容がわかりません。
- どなたかお分かりの方おりましたらご教授のほどよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#259269
回答No.2
前回、これがらみで回答しましたが >System.Runtime.InteropServices.Marshal.ReleaseComObject(FSO) この行通りませんね(直前の行で Return している為)。FileSystemObjectのインスタンスがリークします。 また、前回回答では修正版を載せてますので、そっちを参照ください。
その他の回答 (1)
- ProKaseifu
- ベストアンサー率51% (98/192)
回答No.1
Drvの値に問題があってGetDriveでエラーになってるんじゃないでしょうか? tyy~catchしていないのでそのままエラーが垂れ流されているのでしょう。
質問者
お礼
ProKaseifuさん こんにちは vb.netにはtry~catchなる 便利な機能があるのですね。 勉強になりました。 これからもよろしくお願い致します(*^^)v。
お礼
edp3142さん、こんにちは またしても助けていただきありがとうございました。 おかげさまで解決できました。 今後ともよろしくお願い致します。 'こんな感じにできあがりました。 Private Function Get_Sir(ByVal Drv As String) Dim FSO = CreateObject("Scripting.FileSystemObject") Dim DriveObject = FSO.GetDrive(Drv) Try Return DriveObject.SerialNumber System.Runtime.InteropServices.Marshal.ReleaseComObject(DriveObject) System.Runtime.InteropServices.Marshal.ReleaseComObject(FSO) Catch ex As Exception Return "(・・?" End Try End Function