Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   USB-Ports deaktivieren&aktivieren in Delphi 7 (https://www.delphipraxis.net/163417-usb-ports-deaktivieren-aktivieren-delphi-7-a.html)

sneumann 4. Okt 2011 15:26

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von DeddyH (Beitrag 1128385)
Na gut, dann passt die setupapi.pas wohl tatsächlich nicht zum Beispielcode. Du könntest den Kaktus ja einmal bitten, Dir seine verwendete Version zu schicken.


okay hab ihm geschrieben,mal sehen, hat denn eventuell jemand noch einen anderen Code parrat mit dem ich 4 buttons machen kann, 1 zum aktivieren , 1 zum deaktivieren, 1 zum geräte suchen, 1 zum auflisten der usb ports ??

mache ich vielleicht auch einen falschen Aufruf?

Der.Kaktus 4. Okt 2011 16:31

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von sneumann (Beitrag 1128387)
Zitat:

Zitat von DeddyH (Beitrag 1128385)
Na gut, dann passt die setupapi.pas wohl tatsächlich nicht zum Beispielcode. Du könntest den Kaktus ja einmal bitten, Dir seine verwendete Version zu schicken.


okay hab ihm geschrieben,mal sehen, hat denn eventuell jemand noch einen anderen Code parrat mit dem ich 4 buttons machen kann, 1 zum aktivieren , 1 zum deaktivieren, 1 zum geräte suchen, 1 zum auflisten der usb ports ??

mache ich vielleicht auch einen falschen Aufruf?

SetupAPI ist Teil der JCL (Jedi-VCL)..

des weiteren hast Du etwas falsch verstanden!!!..ich schrieb

Delphi-Quellcode:
...
Uses SetupAPI;
das ... sollte heissen...nach !!! dem Programm-Kopf(header)

also nach
Delphi-Quellcode:
Program test1;
uses System, Forms........;

var
  Form1: TForm1;

implementation

{$R *.dfm}


Uses SetupAPI;
Auch war es nur ein Beispiel!!! um die Art und Weise zu erklaeren...deshalb auch die Kommentare

Delphi-Quellcode:
// state disable setzen
...
// Devices listen


ein bisschen musst Du schon noch nachdenken..sorry!!!!

P.S.: ich habe ebenfalls D7 und es funktioniert Prima

Die Geraetebezeichnung "Universal Host Controller" entsprach auch damals meinem Problem..muesstest Du kontrollieren, ob es unter Windows 7 auch so heisst!!

DeddyH 4. Okt 2011 16:38

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Moin Kaki,
*räusper* JCL <> JVCL ;)
Meine Vermutung ist, dass die Unit im Laufe der Zeit überarbeitet wurde und mit Deinem Code nicht mehr ohne Weiteres kompatibel ist. Deshalb mein Vorschlag, dass Du ihm Deine Version schicken sollst (oder hier anhängen, Attachments in PMs gehen ja nicht mehr).

Der.Kaktus 4. Okt 2011 16:47

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von DeddyH (Beitrag 1128401)
Moin Kaki,
*räusper* JCL <> JVCL ;)
Meine Vermutung ist, dass die Unit im Laufe der Zeit überarbeitet wurde und mit Deinem Code nicht mehr ohne Weiteres kompatibel ist. Deshalb mein Vorschlag, dass Du ihm Deine Version schicken sollst (oder hier anhängen, Attachments in PMs gehen ja nicht mehr).

OK OK JVCL..Sorry


wollte ich tun..ABER "Dein Seitenaufruf konnte aufgrund eines fehlenden Securitytokens nicht verarbeitet werden.

"

hier die Version (nur Namen) die geht "JVCL333CompleteJCL1101-Build2725"
evtl. mal googeln;-)

guinnes 4. Okt 2011 16:53

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Ich habe ne Übersetzung von Robert Marquart genommen von 1999, 3 Änderungen in Kaki's Quelltext gemacht und bei mir gehts ( Sogar noch mit Delphi 5 )

Der.Kaktus 4. Okt 2011 16:59

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von guinnes (Beitrag 1128407)
Ich habe ne Übersetzung von Robert Marquart genommen von 1999, 3 Änderungen in Kaki's Quelltext gemacht und bei mir gehts ( Sogar noch mit Delphi 5 )

Huii, Danke fuer den Test :-)

sneumann 5. Okt 2011 08:57

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von Der.Kaktus (Beitrag 1128404)
Zitat:

Zitat von DeddyH (Beitrag 1128401)
Moin Kaki,
*räusper* JCL <> JVCL ;)
Meine Vermutung ist, dass die Unit im Laufe der Zeit überarbeitet wurde und mit Deinem Code nicht mehr ohne Weiteres kompatibel ist. Deshalb mein Vorschlag, dass Du ihm Deine Version schicken sollst (oder hier anhängen, Attachments in PMs gehen ja nicht mehr).

OK OK JVCL..Sorry


wollte ich tun..ABER "Dein Seitenaufruf konnte aufgrund eines fehlenden Securitytokens nicht verarbeitet werden.

"

hier die Version (nur Namen) die geht "JVCL333CompleteJCL1101-Build2725"
evtl. mal googeln;-)

Habs installiert aber weiter geholfen hats mir noch nicht so richtig ich lese mich nochmal ein bisschen durch :
Um nochmal mein Problem zu verdeutlichen:

Ich möchte die Serielle Schnittstelle ansprechen den COM5. habe da ein Messgerät über SERIAL-to-USB angeschlossen dem ich Befehle übergeben möchte: Anweisungen aus dem Handbuch des Geräts über Delphi an das Gerät senden über COM5:

Beispielbefehle aus dem Handbuch des Geräts:
CONFigure:TEMPerature:TCOuple<parameter> Temperatur configurieren
DISPlay:BACKlight? Abfragen ob Hintergrundbeleuchtung an ist rückgabe 1 oder 0

solche befehle möchte ich über Delphi realisieren und an die Schnittstelle senden und auslesen

Code:
http://www.delphi-forum.de/viewtopic.php?t=107280&highlight=serielle+schnittstelle
link zu gleichem problem anderer Code

sneumann 5. Okt 2011 10:00

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von guinnes (Beitrag 1128407)
Ich habe ne Übersetzung von Robert Marquart genommen von 1999, 3 Änderungen in Kaki's Quelltext gemacht und bei mir gehts ( Sogar noch mit Delphi 5 )

kannste deinen code mal posten?! wäre nett danke!!

guinnes 5. Okt 2011 10:24

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von sneumann (Beitrag 1128522)
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 :
Delphi-Quellcode:
          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 )

sneumann 5. Okt 2011 10:57

AW: USB-Ports deaktivieren&aktivieren in Delphi 7
 
Zitat:

Zitat von guinnes (Beitrag 1128532)
Zitat:

Zitat von sneumann (Beitrag 1128522)
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 :
Delphi-Quellcode:
          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


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr.
Seite 3 von 5     123 45      

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