- - PR -
【VB.net2003】磁気テープの有無確認方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-10 16:01
提示したページを読みましたか? "\\.\TAPE0"のTAPE0部分はドライブ名のA〜Zを指定するはすですが... TAPE0ってどこから参照したのですか? | ||||
|
投稿日時: 2006-07-10 16:13
教えていただいたページの
”テープドライブ”という項目のところを参考にしました。 『テープドライブ 0 を開くには"\\\\.\\TAPE0" というファイル名を使います』 の一文です。 SCSIで接続していて、 ドライブ名は分からないのです。 | ||||
|
投稿日時: 2006-07-10 17:21
すいません僕が見逃していました。
GetLastErrorを使ってエラーコードを取得してみてください。 #確かCreateFileの戻り値に-1を取得しても、GetLastErrorでは正常終了していることがあったような無かったような... #すいませんCreateFileはハンドルを戻すんでしたね! #GetLastErrorしても意味なかったorz [ メッセージ編集済み 編集者: 深山 編集日時 2006-07-10 17:25 ] | ||||
|
投稿日時: 2006-07-10 17:36
GetLastErrorを試してみたところ
エラーNo87のパラメータが違います。 というエラーが出ました。 パラメータを見直してみます。 色々ありがとうございます。 | ||||
|
投稿日時: 2006-07-10 17:43
お力になれなくてすいませんm(__)m
SCSIデバイスならこれなのかなっていうのがありましたので、投稿しておきます。 http://search.acty-net.ne.jp/mfc_search/archive/2001-1/msg00827.html #エラーNo87はパラメータが間違ってコードですね。 | ||||
|
投稿日時: 2006-07-10 17:52
System.Runtime.InteropServices.Marshal.GetLastWin32Error メソッドで、エラーを取得できます。 DllImport 属性を使用して P/Invoke している場合は、 DllImportAttribute の SetLastError フィールドに true を設定する必要があります。 (VB の Declare 宣言は、規定で SetLastError:=True ですから、問題ありません) # まあ、今回は関係なかったようですが。(;^-^) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-07-10 17:52
教えていただいたURLを参考にもう少し考えてみます。
あやふやな質問なのに、的確なアドバイスありがとうございました。 | ||||
|
投稿日時: 2006-07-10 17:57
こんにちは。 ドライブ名ですが、 System.Environment.GetLogicalDrivers() や System.IO.Directory.GetLogicalDrivers() でも取得できないでしょうか? |