Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Ошибка защиты от записи

Ответить
Настройки темы
[решено] Ошибка защиты от записи

Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280


Конфигурация

Профиль | Отправить PM | Цитировать


Программа работает с картами памяти и USB флешками. Нередко бывает, что у SD-карты переключатель сдвинут в положение "LOCK", и карта не работает на запись. Перед считыванием данных я сделал проверку на запись: кладу файл на карту. Если успешно удаляю и делаю отметку, что запись возможна, если же нет, то делаю отметку что невозможна. Но каждый раз появляется надоедливое окно. Как его убрать?

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite


Отправлено: 13:25, 13-03-2015

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата sLiDeR-X:
каждый раз появляется надоедливое окно. Как его убрать? »
Нужно предотвратить его появление.
Для этого нужно увидеть код программы, или её часть, но в рабочем состояний (та часть которая обращается к флешке).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:35, 13-03-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Mike909

Новый участник


Сообщения: 38
Благодарности: 14

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$sDrive = "H:\"
$sTmpFileName = $sDrive & "test.tmp"
ConsoleWrite($sDrive & " " & DriveStatus($sDrive) & ' ' & DriveGetType($sDrive) & @LF) 
$hFile = FileOpen ( $sTmpFileName ,1 )
If $hFile==-1 Then
  ConsoleWrite("Error open file in write mode."  & @LF) 
Else
  ConsoleWrite("Ok."  & @LF) 
  FileClose ($hFile)
  FileDelete ($sTmpFileName)
EndIf

Отправлено: 17:53, 13-03-2015 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
#include <WinAPIFiles.au3>

;...

$hFile = -1

If _WinAPI_IsWritableEx($sDrive) Then
    $hFile = FileOpen($sTmpFileName, 1)
EndIf

;...

Func _WinAPI_IsWritableEx($sDrive)
    Local $hFile = _WinAPI_CreateFileEx('\\.\' & $sDrive, $OPEN_EXISTING, 0, $FILE_SHARE_READWRITE)
    If @error Then Return SetError(@error + 20, @extended, False)

    Local $aRet = DllCall('kernel32.dll', 'bool', 'DeviceIoControl', 'handle', $hFile, 'dword', 0x00070024, 'ptr', 0, 'dword', 0, _
            'ptr', 0, 'dword', 0, 'dword*', 0, 'ptr', 0)
    Local Const $ERROR_WRITE_PROTECT = 19 ; The media is write protected.
    If __CheckErrorCloseHandle($aRet, $hFile, 1) <> 10 And @extended = $ERROR_WRITE_PROTECT Then Return SetError(@error, @extended, False)

    Return $aRet[0]
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:46, 13-03-2015 | #4


Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280

Профиль | Отправить PM | Цитировать


Mike909, это ничем не отличается от того, как сделано у меня. Окно появляется!

Creat0R, спасибо! Функция _WinAPI_IsWritableEx($sDrive) работает.

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite


Отправлено: 22:09, 13-03-2015 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Ошибка защиты от записи

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - Нужен USB HDD 2.5" 500...700 Гб. с кнопкой защиты от записи... DENIS451 Выбор отдельных компонентов компьютера и конфигурации в целом 0 23-12-2010 13:43
ошибка защиты Guest Microsoft Windows 95/98/Me (архив) 14 13-05-2004 08:12
Ошибка защиты в модуле Casper Хочу все знать 3 21-01-2004 16:37
оперативка и ошибка защиты troy4u Microsoft Windows 95/98/Me (архив) 3 02-12-2003 18:59




 
Переход