PDA

Ver la Versión Completa : Como quitar mensaje de Windows?


vicvil
30-07-2007, 18:16:51
Hola
Mi consulta es la siguiente:
Estoy haciendo que mi aplicación busque un archivo en todos los discos instalados en el pc, pero al pasar por el drive A: windows xp me envia un mensaje indicando que no existe un disco en el drive y que inserte uno, necesito que la aplicacion busque el archivo sin que Windows envie ese mensaje aun cuando no exista disco instalado. como puedo quitarlo????

MaMu
30-07-2007, 18:29:57
function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
begin
if Drive in ['a'..'z'] then Dec(Drive, $20);
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive ID');
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
SetErrorMode(ErrorMode);
end;
end;



y su llamada


If DiskInDrive('a') then ShowMessage('disco A') else ShowMessage('No hay A');



Espero que te oriente, Saludos

vicvil
30-07-2007, 20:49:02
Probare la funcion que me diste, gracias

vicvil
31-07-2007, 16:25:28
Probe la funcion que me indicaste pero no me resulto, no se si lo utilice mal.
De todas formas lo que pasa es lo siguiente:
al pasar por

nSize:= DiskSize(1)

windows me envia el mensaje que no existe disco en la Unidad A
y eso es lo que quiero evitar.
Lo probe haciendo lo sgte;

try
nSize:= DiskSize(1);
except
SetErrorMode(SetErrorMode(SEM_FailCriticalErrors))

No se si lo hice mal

dec
31-07-2007, 16:32:37
Hola,

El asunto podría ser más o menos así:


// Pedimos a Windows que no muestre según qué tipo de errores
SetErrorMode(SEM_FAILCRITICALERRORS or SEM_NOOPENFILEERRORBOX);
try
{ Aquí las posibles instrucciones que puedan provocar el error }
finally
// Establecemos de nuevo el "modo de error" por defecto
SetErrorMode(0);
end;

vicvil
31-07-2007, 17:08:55
Gracias ya he solucionado el problema, gracias por la instruccion