AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi USB-Ports deaktivieren&aktivieren in Delphi 7
Thema durchsuchen
Ansicht
Themen-Optionen

USB-Ports deaktivieren&aktivieren in Delphi 7

Ein Thema von sneumann · begonnen am 28. Sep 2011 · letzter Beitrag vom 11. Okt 2011
 
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 28. Sep 2011, 13:50
Hallo,
unter XP habe ich es soo gemacht..obs unter Windows 7 auch so geht..weiss ich nicht genau.

Delphi-Quellcode:

...

uses setupapi;

procedure Disable_USB;

var hdev: HDEVINFO;
    devinfo: TSPDevInfoData;
    DriverInfoData: TSPDrvInfoDataA;
    DriverInstallParams: TSPPropChangeParams;
    ClassInstallParams:TSPPropChangeParams;
    ClassInstallParamsSize: DWORD;
    devInfoListDetail: TSPDevInfoListDetailDataA;
    buffer:Array [0..1024] of char;
    buffersize,dataType:DWORD;
    status,problem:DWORD;
    i,z:integer;
    s:string;
    OK:Longbool;
begin
 devinfo.cbSize:= sizeof(devinfo);
 hdev:= SetupDiGetClassDevs(0,0,0,DIGCF_ALLCLASSES);
 if (hdev = NIL ) then
 begin
   Showmessage('Unable to enumerate device');
   exit;
 end;
 i:=0;
//Devices listen
 repeat
   Buffer[0]:=#0;
   if not (SetupDiEnumDeviceInfo(hdev,i,devinfo)) then break;
   if (GetLastError() = ERROR_NO_MORE_ITEMS) then break;
    if (SetupDiGetDeviceRegistryProperty(hdev,devinfo,SPDRP_DEVICEDESC,
                @DataType,@Buffer[0],sizeof(Buffer),@BufferSize)) then
     begin
      s:=strpas(Buffer);
   //suchen des speziellen Device
      if pos('USB Universal Host Controller',s)>0 then
      begin
        devInfoListDetail.cbSize:= sizeof(devInfoListDetail);
        ClassInstallParams.Classinstallheader.cbSize:= sizeof(_SP_CLASSINSTALL_HEADER);
        ClassInstallParams.Classinstallheader.Installfunction:=DIF_Propertychange;
// state disable setzen
        ClassInstallParams.statechange:=DICS_Disable;
        ClassInstallParams.Scope:=DICS_FLAG_CONFIGSPECIFIC;
        ClassInstallParams.HWProfile:=0;
        if SetupDiSetClassInstallParams(HDEV,@DevInfo,@ClassInstallParams.Classinstallheader,sizeof(ClassInstallParams)) then
        begin
         SetupDICallClassInstaller(DIF_PropertyChange,HDEV,@devinfo);
        end else z:=Getlasterror;
      end;
      Buffer[0]:=#0;
     end;
     i:=i+1;
 until false;
   SetupDiDestroyDeviceInfoList(hdev);
end;
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz