TESTER LA PRÉSENCE DE LA DISQUETTE

cs_grandvizir
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
- 19 déc. 2004 à 17:45
adp138
Messages postés
4
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
16 septembre 2006
- 6 mars 2007 à 11:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11612-tester-la-presence-de-la-disquette

adp138
Messages postés
4
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
16 septembre 2006

6 mars 2007 à 11:49
function DiskIsPresent(t:integer):boolean;
const
Disks:array[1..4] of PChar=('A:\','B:\','C:\','D:\');
var
ErrorMode: Word;

begin
result:=false;
// teste la présence de lecteur de discket
if GetDriveType(disks[t])=2 then
begin
// Désactive la gestion des erreurs
ErrorMode:= SetErrorMode(SEM_FAILCRITICALERRORS);
try
// DiskSize(0)= unité en cours, 1= A, 2= B
Result:= DiskSize(t)<> -1;
finally
// Réactive la gestion des erreurs
SetErrorMode(ErrorMode);
end;
end;
end;
cs_grandvizir
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
22
19 déc. 2004 à 17:45
L'exemple manque cruellement d'explications. Par exemple, il faut spécifier les unités à ajouter: Windows et SysUtils. Ce code source est du vrai débutanisme. Initié ? Pff... Voici donc un petit code qui se tient en un simple fichier DPR:

program Project1;
uses Windows, SysUtils, Dialogs;
{$R-}
function DiskIsPresent:boolean;
var ErrorMode: Word;
begin
ErrorMode:=SetErrorMode(SEM_FAILCRITICALERRORS);
try
DiskIsPresent:= DiskSize(1)<>-1;
finally
SetErrorMode(ErrorMode);
end;
end;
begin
ShowMessage(IntToStr(Ord(DiskIsPresent)));
end.

Pour ce test: 0=false et 1=true.