function IsReservedDeviceName(DevName: string): Boolean; const // List of reserved device names cReservedNames: array[1..22] of string = ( 'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9' ); var I: Integer; // loops thru all reserved device names begin // Get base file name, excluding path DevName := SysUtils.AnsiUpperCase( SysUtils.ExtractFileName(DevName) ); Result := False; // Check if name is reserved for I := Low(cReservedNames) to High(cReservedNames) do if cReservedNames[I] = DevName then begin Result := True; Break; end; end; //delphi/2217