Contrôler l'Autorun pour les CD-Rom
Télécharger le projet exemple (3.69 ko)
Vous pouvez contrôler la valeur de 4 octets (32 bits) dans la vase de registre Windows sous la clé
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun
Placer les bits suivants dans la valeur aura pour conséquence de désactiver l'autorun pour le périphérique désigné par le numéro de bit
N° Bit / Valeur
| 0 | DRIVE_UNKNOWN |
|---|---|
| 1 | DRIVE_NO_ROOT_DIR |
| 2 | DRIVE_REMOVABLE |
| 3 | DRIVE_FIXED |
| 4 | DRIVE_REMOTE |
| 5 | DRIVE_CDROM |
| 6 | DRIVE_RAMDISK |
Attention toutefois, il est nécessaire de redémarrer l'ordinateur pour que les changements soient pris en compte.
Vous pouvez également configurer cette valeur pour tester la fonction autorun d'un programme que vous développez à partir d'une diquette ou d'un disque réseau en mettant leur valeur sur Autorun=On pour démarrer à partir d'une disquette (DRIVE_REMOVEABLE) ou d'un disque réseau (DRIVE_REMOTE). Si le périphérique n'a pas d'auto-détection d'insertion, insérez simplement le disque et appuyez sur la touche F5 à partir de l'explorateur Windows devrait provoquer l'acitvation de l'autorun.
L'exemple suivant démontre comment controler si la fonction Autorun pour les CD est activé, et montre aussi bien comment l'activer que la désactiver.
Autorun pour les CD Rom
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 Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
const
verb = 'L''Autorun pour les CD-ROM est ';
on = 'activé';
off = 'désactivé';
var
Form1: TForm1;
function IsCdAutoRunOn : bool;
procedure SetCdAutoRun(bOn : bool);
implementation
{$R *.DFM}
function IsCdAutoRunOn : bool;
var
reg: TRegistry;
AutoRunSetting : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey(
'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
false);
reg.ReadBinaryData('NoDriveTypeAutoRun',
AutoRunSetting ,
sizeof(AutoRunSetting));
reg.CloseKey;
reg.free;
result := not ((AutoRunSetting and (1 shl 5)) <> 0);
end;
procedure SetCdAutoRun(bOn : bool);
var
reg: TRegistry;
AutoRunSetting : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.LazyWrite := false;
reg.OpenKey(
'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
false);
reg.ReadBinaryData('NoDriveTypeAutoRun',
AutoRunSetting ,
sizeof(AutoRunSetting));
if bOn then
AutoRunSetting := AutoRunSetting and not (1 shl 5)
else
AutoRunSetting := AutoRunSetting or (1 shl 5);
reg.WriteBinaryData('NoDriveTypeAutoRun',
AutoRunSetting ,
sizeof(AutoRunSetting));
reg.CloseKey;
reg.free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetCDAutorun(True);
if IsCDAutorunOn then Label1.Caption := verb + on
else Label1.Caption := verb + off;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SetCDAutorun(False);
if IsCDAutorunOn then Label1.Caption := verb + on
else Label1.Caption := verb + off;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
if IsCDAutorunOn 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.007 Secs
