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????
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
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.