Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Como quitar mensaje de Windows? (https://www.clubdelphi.com/foros/showthread.php?t=46374)

vicvil 30-07-2007 18:16:51

Como quitar mensaje de Windows?
 
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

Código Delphi [-]
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

Código Delphi [-]
If DiskInDrive('a') then ShowMessage('disco A') else ShowMessage('No hay A');

Espero que te oriente, Saludos

vicvil 30-07-2007 20:49:02

Gracias lo probare
 
Probare la funcion que me diste, gracias

vicvil 31-07-2007 16:25:28

Aun con problemas
 
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í:

Código Delphi [-]
// 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

ok
 
Gracias ya he solucionado el problema, gracias por la instruccion


La franja horaria es GMT +2. Ahora son las 15:42:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi