Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WMI vs. SetupApi (https://www.delphipraxis.net/117871-wmi-vs-setupapi.html)

r_amse_s 26. Jul 2008 23:54


WMI vs. SetupApi
 
Hallo,

zuerst zu meinen Problem:
1) ich möchte herausfinden wann der User ein Gerät am Laptop ansteckt, sei es über USB, PCMCIA oder PC-Express Slot. In allen diesen Fällen erscheinen einen oder mehreren serielen ports (COM ports) im Gerätemanager unter "Anschlüsse (COM & LPT)". Zusätzlich erscheint gleichzeitig auch unter "Modems" im Gerätemanager ein Modem.
2) nachdem mein Programm darüber verständigt wurde, möchte ich auch die genauen COM Ports, welche dem Gerät zugewiesen wurden.

wie soll das realisiert werden? manche sagen WMI ist zu buggy und zu cpu intensiv...
über SetupApi weiss gar nicht, ob realisierbar ist...

bitte um Hilfe, wenn möglich mit Beispielen, die Beispiele die ich bis jetzt mit WMI ausprobiert habe, funktionieren leider nicht.


vielen Dank im voraus!

RWarnecke 27. Jul 2008 08:03

Re: WMI vs. SetupApi
 
Suche mal nach Hier im Forum suchenWMIDemo. Dieses Demoprogramm funktioniert hervorragend.

r_amse_s 27. Jul 2008 15:52

Re: WMI vs. SetupApi
 
da demo funktt. ja, aber dort wird gar nix mit events gemacht...und das ist das wichtigste

mit der Win32_POTSModem class habe ich die Eigenschaften des Modems herausgefunden, die von den COM (Anschlüsse (COM & LPT)) leider nicht.
wenn ich einer der Klassen Win32_SerialPort, Win32_SerialPortConfiguration, Win32_SerialPortSetting verwende kommt nichts zurück.

verwende ich die falsche Klassen, oder fehlt noch was? 2 Ports sind in Gerätemanager sichtbar derzeit, und erwarte, dass diese Ports mit WMI auslesen kann.

ich verwende:
- Win Vista Ultimate
- WMIDemo
- das Ganze passiert local
- also für Computer '.'
- user name & pw bleiben leer


würde gerne auf WMI verzichten, wenn jemand mir erklären könnte wie ich das mit SetupApi bewerkstelligen könnte.

Alter Mann 27. Jul 2008 18:44

Re: WMI vs. SetupApi
 
Hi,

schau dir doch mal WM_DEVICECHANGE an.
Damit bekommst du zu mindestens mit wenn Geräte hinzugefügt bzw. entfernt werden.
Anschließend sollten auch die WMI-Abfragen die gewünschten Ergebnisse bringen.

Gruß

r_amse_s 27. Jul 2008 19:17

Re: WMI vs. SetupApi
 
Liste der Anhänge anzeigen (Anzahl: 1)
danke alter mann!

mit wm_devicechange habe ich schon was gemacht, kann damit jedoch nicht herausfinden was für device wurde am PC angesteckt: USB Stick, datenkarte, oder was anderes
bei datenkarten kommt NUR dieser verfluchte param 7 (siehe artikel).

Zitat:

Weiterhin fällt auf, daß recht viele Geräte (wie USB-Geräte der HID-Klasse oder Speichermedien in einem Memory Card Reader) nur die Botschaft mit dem ominösen Parameter 0007 generieren. Da
nicht zwischen Hinzufügen oder Entfernen unterschieden werden kann und auch keine genauere Eingrenzung des Gerätetyps möglich ist, hilft das nicht.
ich würde eine elegante Lösung bevorzugen, eben mit WMI oder SetupAPI...

Alter Mann 28. Jul 2008 17:39

Re: WMI vs. SetupApi
 
Hi,

auch wenn es ein Zirkelbezug sein sollte, bitte hier mal nachlesen.
Was definitiv gebraucht wird ist Setup and Config Manager API.

Enthalten sind auch ein paar Beispiele, so dass du mit Hilfe des Artikels aus der Toolbox, der DP und google zum Ziel kommen solltest.

Gruß

r_amse_s 29. Jul 2008 21:33

Re: WMI vs. SetupApi
 
supi alter mann! danke für deine hartnäckigkeit bezgl. wm und ich danke mir, dass ich wmi aufgegeben habe :-)

punkt 1) gelöst. es funkt sehr zuverlässig sowohl auf XP als auch auf vista.

jetzt möchte das ganze in einen separaten unit verlagern und man muss dort die app registrieren, sodass man messages bekommt (ohne handle keine messages), wenn ich richtig vertanden habe...

dann kommt punkt 2)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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