AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Probleme, serielle Ports zu ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme, serielle Ports zu ermitteln

Ein Thema von OlafSt · begonnen am 3. Aug 2015 · letzter Beitrag vom 18. Aug 2015
 
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Probleme, serielle Ports zu ermitteln

  Alt 3. Aug 2015, 11:11
Hallo Freunde,

heute nal wieder eine Merkwürdigkeit. Habe eine Software geschrieben, die sich mit Endgeräten über die serielle Schnittstelle unterhalten muß. Natürlich muß ich in der Konfiguration die Liste der verfügbaren COM-Ports anbieten und wie üblich gibt es da Probleme mit den USB-Seriell-Wandlern und deren virtuellen COM-Ports.

Denn diese werden über die Registry-Methode nicht gefunden Also habe ich hier etwas geforscht und eine Methode gefunden, die übers WMI geht:

Delphi-Quellcode:
procedure GetWin32_SerialPortInfo(TargetCombo: TComboBox);
const
     WbemUser ='';
     WbemPassword ='';
     WbemComputer ='localhost';
     wbemFlagForwardOnly = $00000020;
var
   FSWbemLocator : OLEVariant;
   FWMIService : OLEVariant;
   FWbemObjectSet: OLEVariant;
   FWbemObject : OLEVariant;
   oEnum : IEnumvariant;
   iValue : LongWord;
begin
     TargetCombo.Clear;
     FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
     FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\WMI', WbemUser, WbemPassword);
     FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM MSSerial_PortName','WQL',wbemFlagForwardOnly);
     oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
     while oEnum.Next(1, FWbemObject, iValue) = 0 do
     begin
          TargetCombo.Items.Add(String(FWbemObject.PortName));
          FWbemObject:=Unassigned;
     end;
end;
Funktioniert tadellos mit Win7, Win8, Win10 - solange man Administratorrechte hat. Nun habe ich hier einen Rechner, bei dem funktioniert dies auf Teufel komm raus nicht. MadExcept wirft einen Fehlerreport heraus mit der Meldung: Nicht unterstützt. Fehlerzeile ist das ExecQuery.

Das Betriebssystem ist Windows 10, Build 10074 und ja, er hat Admin-Rechte

Mir schwant, das ich irgendwas nachinstallieren muß auf dem Rechner - nur was ? Irgendwer ne heiße Idee, was da schief ist ?

Danke für jeden Tip !
  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 11:27 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 by Thomas Breitkreuz