[Turbo C++]如何偵測到軟碟機的防寫保護? |
尚未結案
|
ranboco
一般會員 發表:6 回覆:3 積分:1 註冊:2004-06-11 發送簡訊給我 |
我寫一個偵測軟碟機的程式
使用"_bios_disk"這個函式
按照說明,當軟碟防寫保護的時候,應該會有回傳值(高位元!=0)
但是經過實際測試,軟碟機防寫保護的時候,回傳時還是=0
程式還是當成是放入一片可讀寫的磁片,造成後面的程式寫入檔案發生錯誤
以下是我所撰寫的"偵測軟碟機"(B:槽)
請各位前輩指導,如何才能有效偵測出軟碟防寫保護 #include
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言:個人建議,請使用最直接的方法,您可以先讀取一個磁區, 接著把那個磁區寫回去,如果可以寫入成功,那就是沒有防寫, 如果寫入不成功,就視為防寫。 因為讀寫的資料相同,所以不影響原來磁片的任何檔案。 以我查看 TC3.0 的線上說明,_bios_disk 的回傳值 0x03 Attempt to write to write-protected disk 所以,當寫回磁區時,如果回傳值是 0x03 就表示磁片防寫。 如果您只有讀,應該無法判斷是否防寫,因為那個防寫的狀態並不會存在磁片中,只能在您寫入時才知道。 http://www.ViewMove.com 視動自動化科技股份有限公司 ViewMove Technologies, Inc. 發表人 - dllee 於 2004/06/22 10:37:03#include
------
http://www.ViewMove.com |
ranboco
一般會員 發表:6 回覆:3 積分:1 註冊:2004-06-11 發送簡訊給我 |
引言:個人建議,請使用最直接的方法,您可以先讀取一個磁區, 接著把那個磁區寫回去,如果可以寫入成功,那就是沒有防寫, 如果寫入不成功,就視為防寫。 因為讀寫的資料相同,所以不影響原來磁片的任何檔案。 以我查看 TC3.0 的線上說明,_bios_disk 的回傳值 0x03 Attempt to write to write-protected disk 所以,當寫回磁區時,如果回傳值是 0x03 就表示磁片防寫。 如果您只有讀,應該無法判斷是否防寫,因為那個防寫的狀態並不會存在磁片中,只能在您寫入時才知道。太感謝了 難怪我一直無法有效偵測軟碟保護 一點就點到我的盲點 請接受小弟一拜~~~~(鞠躬) |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |