- PR -

【VB.net2003】磁気テープの有無確認方法

投稿者投稿内容
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-07-10 16:01
引用:

シロさんの書き込み (2006-07-10 15:00) より:

CreateFile("\\.\TAPE0",0,0,0,2,&H80,0)
と書いていますが、戻り値は-1です。
TAPEは1つしかないので、TAPE0で問題ないはずだし、
ちゃんとTAPEの方も起動しています。



提示したページを読みましたか?

"\\.\TAPE0"TAPE0部分はドライブ名のA〜Zを指定するはすですが...

TAPE0ってどこから参照したのですか?
シロ
常連さん
会議室デビュー日: 2005/05/15
投稿数: 34
投稿日時: 2006-07-10 16:13
教えていただいたページの
”テープドライブ”という項目のところを参考にしました。
『テープドライブ 0 を開くには"\\\\.\\TAPE0" というファイル名を使います』
の一文です。

SCSIで接続していて、
ドライブ名は分からないのです。
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-07-10 17:21
すいません僕が見逃していました。

GetLastErrorを使ってエラーコードを取得してみてください。

#確かCreateFileの戻り値に-1を取得しても、GetLastErrorでは正常終了していることがあったような無かったような...

#すいませんCreateFileはハンドルを戻すんでしたね!
#GetLastErrorしても意味なかったorz


[ メッセージ編集済み 編集者: 深山 編集日時 2006-07-10 17:25 ]
シロ
常連さん
会議室デビュー日: 2005/05/15
投稿数: 34
投稿日時: 2006-07-10 17:36
GetLastErrorを試してみたところ
エラーNo87のパラメータが違います。
というエラーが出ました。

パラメータを見直してみます。

色々ありがとうございます。
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-07-10 17:43
お力になれなくてすいませんm(__)m

SCSIデバイスならこれなのかなっていうのがありましたので、投稿しておきます。

http://search.acty-net.ne.jp/mfc_search/archive/2001-1/msg00827.html

#エラーNo87はパラメータが間違ってコードですね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-10 17:52
引用:

深山さんの書き込み (2006-07-10 17:21) より:

GetLastErrorを使ってエラーコードを取得してみてください。


System.Runtime.InteropServices.Marshal.GetLastWin32Error メソッドで、エラーを取得できます。

DllImport 属性を使用して P/Invoke している場合は、
DllImportAttribute の SetLastError フィールドに true を設定する必要があります。
(VB の Declare 宣言は、規定で SetLastError:=True ですから、問題ありません)

# まあ、今回は関係なかったようですが。(;^-^)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
シロ
常連さん
会議室デビュー日: 2005/05/15
投稿数: 34
投稿日時: 2006-07-10 17:52
教えていただいたURLを参考にもう少し考えてみます。

あやふやな質問なのに、的確なアドバイスありがとうございました。
カルガモ
常連さん
会議室デビュー日: 2006/06/27
投稿数: 20
投稿日時: 2006-07-10 17:57
引用:

SCSIで接続していて、
ドライブ名は分からないのです。


こんにちは。

ドライブ名ですが、
System.Environment.GetLogicalDrivers()

System.IO.Directory.GetLogicalDrivers()
でも取得できないでしょうか?

スキルアップ/キャリアアップ(JOB@IT)