Oli Posted November 11, 2003 Share Posted November 11, 2003 Thought this might be useful to somebody. It will return the drive letter of the first available CD-ROM drive to the console.program Project1;{$APPTYPE CONSOLE}uses SysUtils, classes, Unit1 in 'Unit1.pas';var envlist: TStringList; i: integer;begin writeln(getcd(getdisks)+':');end.unit Unit1;interfaceuses classes, sysutils, windows;function GetCD(availdisks: string): string;function GetDisks:string;implementationfunction GetCD(availdisks: string): string;var i :integer; root :pchar;begin result:=chr(0); root:=stralloc(255); for i:=1 to length(availdisks) do begin strpcopy(root,copy(availdisks,i,1)+':\'); if getdrivetype(root)=drive_cdrom then begin result:=availdisks[i]; break; end; end; strdispose(root);end;function GetDisks:string;var availdisks: string; i,n :integer; buf :pchar;begin buf:=stralloc(255); n:=GetLogicalDriveStrings(255,buf); availdisks:=''; for i:=0 to n do if buf[i]<>#0 then begin if (ord(buf[i]) in [$41..$5a]) or (ord(buf[i]) in [$61..$7a]) then availdisks:=availdisks+upcase(buf[i]) end else if buf[i+1]=#0 then break; strdispose(buf); result:=availdisks;end;end. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now