@Krashan, post #2
@Krashan, post #2
Może Lock("DF0:") i potem NameFromLock().
@cholok, post #5
A nie widzę jak zmatchować np 'DH0' do 'SYSTEM' :/
task = FindTask(NULL); task->pr_WindowPtr = (APTR)-1;
@Hexmage960, post #6
MODULE 'dos/dos', 'dos/dosextens' PROC main() DEF _lock=NIL, _i, _label[40]:STRING, _driveName[5]:STRING, _process=NIL:PTR TO process, _oldWindowPtr:LONG _process:=FindTask(NIL) _oldWindowPtr:=_process.windowptr _process.windowptr:=-1 FOR _i:=0 TO 3 StringF(_driveName, 'DF\d:', _i) _lock:=Lock (_driveName, ACCESS_READ) IF _lock NameFromLock(_lock, _label, 40) UnLock(_lock) WriteF('\s \s \n', _driveName, _label) ELSE PrintFault(IoErr(), _driveName) ENDIF ENDFOR _process.windowptr:=_oldWindowPtr ENDPROC
DF0:: brak dysku w napędzie DF1:: to nie jest dysk w formacie DOS-u DF2: Lasermania 2: DF3:: urządzenie (lub wolumen) nie jest zamontowane
@vojo, post #4
doslist=LockDosList(LDF_DEVICES|LDF_VOLUMES|LDF_READ); dosentry=FindDosEntry(doslist, "DF0", LDF_DEVICES); if (dosentry) { while (doslist=NextDosEntry(doslist, LDF_VOLUMES)) { if (dosentry->dol_Task==doslist->dol_Task) { // doslist->dol_Name to nazwa wolumenu } } } UnlockDosList(LDF_DEVICES|LDF_VOLUMES|LDF_READ);