après pour lancer la fonction, il faut faire:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if ChangeResolEcran(StrToInt(LabelL.caption),StrToInt(LabelH.caption), StrToInt(LabelC.caption))=DISP_CHANGE_SUCCESSFUL
then ChangeFrequence(75);Form1.close;
end;
dans ce cas, je l'ai mis au démarrage de l'appli, avec un timer qui lance le changement de résolution après 5secondes....
et aussi, une fois que le changement de résolution est éffectué, je change la fréquence pour 75Hz
(ChangeFrequence(75)
ChangeFrequence fait en fait appel à une autre fonction:
function ChangeFrequence(Frequence:integer):Integer;
var
Retour:Longint;
DevMode:TDeviceMode;
begin
DevMode.dmSize:=SizeOf(DevMode);
DevMode.dmDisplayFrequency:=Frequence;
DevMode.dmFields:=DM_DISPLAYFREQUENCY; //indique ce que l'on veut modifier.
Retour := ChangeDisplaySettings(DevMode, CDS_TEST); //CDS_TEST car ce que l'on veut en premier, c'est voir si c'est possible
if Retour=DISP_CHANGE_RESTART then ShowMessage('ne peut modifier la résolution car nécessiterait un redémarrage de Windows');
if Retour=DISP_CHANGE_SUCCESSFUL then ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY);// là, c'est bon, on le fait pour de bon.
if Retour=DISP_CHANGE_FAILED then ShowMessage('erreur');
if Retour=DISP_CHANGE_BADMODE then ShowMessage('Mode Graphique non supporté');
Result:=Retour;
end;
---------------
Elran,