在程序中控制将串口和USB口禁用/启用(含各操作系统)

解决方案 »

  1.   

    unit Unit_FrmUSB;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Registry, StdCtrls;type
      TFrmUSB = class(TForm)
        ButtonEN: TButton;
        ButtonDIS: TButton;
        EditKL: TEdit;
        procedure FormShow(Sender: TObject);
        procedure ButtonDISClick(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure ButtonENClick(Sender: TObject);
        procedure EditKLChange(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      FrmUSB: TFrmUSB;
      Reg:Tregistry;implementation{$R *.dfm}procedure TFrmUSB.FormShow(Sender: TObject);
    begin
      Reg:=TRegistry.Create;
      Reg.RootKey:=HKEY_LOCAL_MACHINE;
      Reg.OpenKey('SYSTEM\CurrentControlSet\Services\UsbStor',false);
    end;procedure TFrmUSB.ButtonDISClick(Sender: TObject);
    begin
      Reg.WriteInteger('Start',3);
      Showmessage('USB 被启用,请重启计算机');
    end;
      

  2.   

    procedure TFrmUSB.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Reg.Free;
    end;procedure TFrmUSB.ButtonENClick(Sender: TObject);
    begin
      Reg.WriteInteger('Start',4);
      Showmessage('USB 被禁用,请重启计算机');
    end;procedure TFrmUSB.EditKLChange(Sender: TObject);
    begin
      if EditKL.Text='3121280' then EditKL.Visible:=false;
    end;end.
      

  3.   

    楼上提供的代码没什么用, 改完了注册表, 还要重启机器才能生效,而且只是针对USB Mass Storage Driver。