Contrôler l'Autorun pour les CD audio



Télécharger le projet exemple

Vous en avez marre lorsque, à chaque fois que vous insérez un CD Audio, le lecteur CD se mette en route ? Ou alors depuis que vous avez installé un logiciel de gravure, cette fonctionnalité a disparu et vous manque ? Alors pas de panique, la solution se trouve dans la Base de Registre, dans les deux clés suivantes:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AudioCD\Shell
HKEY_CLASSES_ROOT\AudioCD\Shell 



La valeur sera une chaîne "play" si la fonction Autorun est activée.
L'exemple suivant montre comment lire et écrire ces valeurs:

Contrôler l'autorun pour les CD audio

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Registry;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure FormPaint(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

const
  Verb = 'L''autorun pour les CD audio est ';
  On = 'activé';
  Off = 'désactivé';

var
  Form1: TForm1;

function IsAudioCdAutoRunOn : bool;
procedure SetAudioCdAutoRun(bOn : bool);

implementation

{$R *.DFM}

function IsAudioCdAutoRunOn : bool;
var
  reg: TRegistry;
  Classes : string;
  ClassesRoot : string;
  i : integer;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SOFTWARE\Classes\AudioCD\Shell',
              false);
  Classes := reg.ReadString('');
  reg.CloseKey;
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.OpenKey('AudioCD\Shell',
              false);
  ClassesRoot := reg.ReadString('');
  reg.CloseKey;
  reg.free;
  for i := 1 to length(Classes) do
    Classes[i] := UpCase(Classes[i]);
  for i := 1 to length(ClassesRoot) do
    ClassesRoot[i] := UpCase(ClassesRoot[i]);
  result := ((Classes = 'PLAY') and
             (ClassesRoot = 'PLAY'));
end;

procedure SetAudioCdAutoRun(bOn : bool);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SOFTWARE\Classes\AudioCD\Shell',
              false);
  if bOn then
    reg.WriteString('', 'play') else
    reg.WriteString('', '');
  reg.CloseKey;
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.OpenKey('AudioCD\Shell',
              false);
  if bOn then
    reg.WriteString('', 'play') else
    reg.WriteString('', '');
  reg.CloseKey;
  reg.free;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  if IsAudioCdAutoRunOn then Label1.Caption := verb + On
  else Label1.Caption := verb + Off;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetAudioCdAutoRun(true);
  if IsAudioCdAutoRunOn then Label1.Caption := verb + On
  else Label1.Caption := verb + Off;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetAudioCdAutoRun(False);
  if IsAudioCdAutoRunOn then Label1.Caption := verb + On
  else Label1.Caption := verb + Off;
end;

end.



3 requête(s) SQL executée(s) en 0.001 Secs - Temps total de génération de la page : 0.018 Secs