Форум » [x]Harbour » Пустой дисковод » Ответить

Пустой дисковод

lena: Мне надо из программы (xHarbour) записать на дискету пару файлов. Вставляю в программу DirChange("A"), DirReady("A") и если дисковод пустой, то на экране появляется сообщение windows - дисковод пустой, и лишь потом выполняется моя программа. Как это обойти?

Ответов - 16

Dima: Попробуй IsDisk( <cDrive> ) --> lDriveIsReady

lena: А тоже самое. Я пробовала Dirchange, DiskReady, IsDisk, DiskUsed, результат тот же. Как перехватить это событие. Вставляла try ... catch, не помогает.

Петр: When a user attempts to get information about a floppy drive that does not have a floppy disk, or a CD-ROM drive that does not have a compact disc, the system displays a message box for the user to insert a floppy disk or a compact disc, respectively. To prevent the system from displaying this message box, call the SetErrorMode function with SEM_FAILCRITICALERRORS. P.S. Только не забудьте потом SetErrorMode(0)


lena: Спасибо, помогло следующее: SetErrorMode(1) if !IsDisk("A") AVARSOOB('Нет дискеты') endif

Петр: #define SEM_FAILCRITICALERRORS 0х0001 SetErrorMode(1) if !IsDisk("A") AVARSOOB('Нет дискеты') endif SetErrorMode(0)

lena: Спасибо, сделала, НЕ ЗАБЫЛА

lena: Еще вопрос по недокументированной функции DriveType(). Может у кого-нибудь есть возвращаемые коды

Петр: [pre2] { case DRIVE_RAMDISK: iType = 0; /* RAM Drive - Clipper compatible */ break; case DRIVE_REMOVABLE: iType = 2; /* Floppy Drive - Clipper compatible */ break; case DRIVE_FIXED: iType = 3; /* Hard Drive - Clipper compatible */ break; case DRIVE_CDROM: iType = 4; /* CD-Rom Drive - xHarbour extension */ break; case DRIVE_REMOTE: iType = 5; /* Network Drive - xHarbour extension */ break; default: iType = 9; /* Unknow Drive - xHarbour extension */ break; } hb_retni( iType ); [/pre2]

lena: Еще раз спасибо

lena: а USB-носитель можно как-то определить?

Pasha: lena пишет: а USB-носитель можно как-то определить? Function GetRmDrives // ------------------------------------------------------------- // Возвращает массив сменных дисков // ------------------------------------------------------------- Local i, aDrv := {}, cd for i := 1 to 26 cd := Chr(96+i) + ':\' if DriveType(cd) == 2 AADD(aDrv, cd) endif next Return aDrv

lena: Спасибо

gustow: Елена, извините за оффтопик :) Просто интересно - какой тематикой занимаетесь? (для какой области деятельности программируете?) А то редко тут программисты немужского пола попадаются :) Да и на HMGforum.com , помнится, была такая ветка - "Lady Programmer on HMG" (т.ч. это "проблема международного масштаба" :) )

Andrey: gustow пишет: редко тут программисты немужского пола попадаются Да, да это точно редко. Хотя в ВЦ Академии Наук Таджикской ССР я много знал женщин программистов. Тогда еще работали на ЕС ЭВМ, БЭСТ и др. Пишите почаще, поможем всегда....

lena: Сопровождаю зарплату на предприятии, если уж такой интерес возник . Уж и не знаю кто я, программист или бухгалтер . Нечто среднее. Так что не переживайте . Очень помогает форум. Работаю с xHarbour около двух лет. Вот думаю, может стоит перейти на Harbour.

gustow: lena пишет: Уж и не знаю кто я, программист или бухгалтер . Нечто среднее. Так что не переживайте . :) А мы все тут "нечто среднее" :) ... между программистом и бухгалтером, медстатистиком, жилконторщиком, кладовщиком, продажником, учетчиком и др. и пр... И не переживаем! Еникейщики однако (да еще ex-СССРовские)... "из дерьма конфетку" лепить привышные... Так что харборские штучки - это как раз для нас :)



полная версия страницы