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

USB-Ports deaktivieren&aktivieren in Delphi 7

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

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#1

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 5. Okt 2011, 10:24
kannste deinen code mal posten?! wäre nett danke!!
Wie gesagt, ich habe nur 3 Stellen verändert : Hier 2 Mal das @ rausgeworfen
Delphi-Quellcode:
      if (SetupDiGetDeviceRegistryProperty(hdev,devinfo,SPDRP_DEVICEDESC,
                  DataType,@Buffer[0],sizeof(Buffer),BufferSize)) then
und hier den 1. Unterschrich entfernt :
          ClassInstallParams.Classinstallheader.cbSize:= sizeof(SP_CLASSINSTALL_HEADER);
p.s.: Grade nochmal ein Build gemacht, jetzt hagelt es bei mir auch Fehler ( alle im Bereich WINNT )
Glückauf

Geändert von guinnes ( 5. Okt 2011 um 10:41 Uhr)
  Mit Zitat antworten Zitat
sneumann
(Gast)

n/a Beiträge
 
#2

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 5. Okt 2011, 10:57
kannste deinen code mal posten?! wäre nett danke!!
Wie gesagt, ich habe nur 3 Stellen verändert : Hier 2 Mal das @ rausgeworfen
Delphi-Quellcode:
      if (SetupDiGetDeviceRegistryProperty(hdev,devinfo,SPDRP_DEVICEDESC,
                  DataType,@Buffer[0],sizeof(Buffer),BufferSize)) then
und hier den 1. Unterschrich entfernt :
          ClassInstallParams.Classinstallheader.cbSize:= sizeof(SP_CLASSINSTALL_HEADER);
p.s.: Grade nochmal ein Build gemacht, jetzt hagelt es bei mir auch Fehler ( alle im Bereich WINNT )

jetzt hab ich nur noch folgende fehlermeldung popupfenster
"Im Projekt usbtest.exe ist eine Excepton der Klasse EAccess Violation aufgetreten. Meldung: Zugriffverletzung bei Adresse 00000000. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen"
bei folgendem Code
Code:
unit main;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


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;
procedure TForm1.Button4Click(Sender: TObject);
begin
Disable_USB();
ShowMessage('deaktiviert');
end;

end.
dann klcike ich ok und garnix passiert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#3

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 5. Okt 2011, 10:59
Dann setz mal einen Haltepunkt, steppe zeilenweise durch und teile uns mit, in welcher Zeile der Fehler auftritt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#4

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 5. Okt 2011, 12:03
Ins Formcreate gehört noch ein LoadSetupAPI und ins FormDestroy ein UnloadSetUpAPI. Sorry, hatt ich noch vergessen

Du bist aber recht mutig, einfach irgendwelche Treiber abzuschalten. Wäre es nicht besser, erst mal sich alles nur anzeigen zu lassen ?
Glückauf
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 5. Okt 2011, 13:50
@sneumann:

Das Programm USBVIEW ist von Microsoft.

Ein unvollständiger "Nachbau" mit SourceCode ist im Anhang.
Angehängte Dateien
Dateityp: zip usbview.zip (375,0 KB, 70x aufgerufen)
  Mit Zitat antworten Zitat
sneumann
(Gast)

n/a Beiträge
 
#6

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 6. Okt 2011, 07:15
@sneumann:

Das Programm USBVIEW ist von Microsoft.

Ein unvollständiger "Nachbau" mit SourceCode ist im Anhang.
Das Programm zeigt die Geräte aber nur an richtig?
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

AW: USB-Ports deaktivieren&aktivieren in Delphi 7

  Alt 6. Okt 2011, 07:34
Leider ja.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:14 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