home *** CD-ROM | disk | FTP | other *** search
- /* Dismount util by Jaca/Dreamolers-CAPS
- ** PUBLIC DOMAIN SOFTWARE
- ** Contact: jacadcaps@poczta.onet.pl
- ** Homepage: jacadcaps.tripod.com
- **
- ** Dreamolers-CleverAmigantsPolishSociety
- ** product
- */
-
- OPT 020
-
- MODULE 'dos/dos','exec/nodes','dos/dostags','dos/dosextens','exec/ports','exec/tasks'
-
- DEF name[300]:STRING,buf[350]:STRING,dp:PTR TO devproc,task:PTR TO process,name2[300]:STRING
- DEF myarg[1]:ARRAY OF LONG,rdargs,lock:PTR TO LONG
- DEF e
-
- PROC main()
- task:=FindTask(0);task.windowptr:=-1; ->do not open requesters
- IF rdargs:=ReadArgs('VOL=DEV/A',myarg,NIL)
- dp:=GetDeviceProc(myarg[0],NIL)
- IF dp<>0
- task:=dp.port.sigtask
- StringF(name,'\s:',task.task.ln.name)
- FreeDeviceProc(dp)
- IF StrLen(name)>1
- UpperStr(name);CopyMem(myarg[0],name2,StrLen(myarg[0])+1);UpperStr(name2)
- IF StrCmp(name2,name,ALL)
- lock:=Lock(myarg[0],ACCESS_READ)
- IF lock<>0
- NameFromLock(lock,name,300)
- UnLock(lock)
- ELSE; ->no VOLUME mounted (remove the drive only!)
- StringF(name,'')
- -> IF IoErr()=ERROR_NO_DISK
- /* removed since CacheCDFS returns "not a dos disk" error when **
- ** I want to lock an audio CD */
- StringF(buf,'assign >NIL: \s dismount remove',myarg[0])
- Execute(buf,0,0)
- -> ENDIF
- ENDIF
- ENDIF
- IF StrLen(name)>0
- StringF(buf,'assign >NIL: \s dismount remove',name)
- Execute(buf,0,0)
- StringF(buf,'assign >NIL: \s dismount remove',myarg[0])
- Execute(buf,0,0)
- ENDIF
- ENDIF
- ELSE;WriteF('Unable to GetDeviceProc!\n');ENDIF
- FreeArgs(rdargs)
- ENDIF
- ENDPROC
-
- vers: CHAR '$VER: Dismount 1.3 (23.06.01) ⌐2001 Dreamolers-CAPS'
-