Ändern Sie die COM-Port-Nummer programmgesteuert

3794
MatthewKing

Im Geräte-Manager kann ich mit der rechten Maustaste auf ein serielles Gerät klicken, zur Registerkarte Anschlusseinstellungen navigieren, auf Erweitert klicken und die COM-Anschlussnummer über ein Dropdown-Menü ändern.

Ich muss diesen Schritt auf einer großen Anzahl von PCs automatisieren. Gibt es eine Möglichkeit, diesen Prozess zu programmieren oder programmgesteuert auszuführen?

4
Sind sie alle dieselbe Windows-Version? RockPaperLizard vor 9 Jahren 0
Sie sind nicht - könnten WinXP, Win7 oder Win8 sein. Trotzdem akzeptiere ich gerne eine Lösung, die nur bei einer Lösung funktioniert (besser als nichts!). MatthewKing vor 9 Jahren 0
Hmmm .... neugierig, was ist die spezifische Anwendung für diesen Prozess? mdpc vor 9 Jahren 0

1 Antwort auf die Frage

2
Jim Fell

Diese Frage ist wahrscheinlich am besten auf gefragt Stack - Überlauf . Schauen Sie sich jedoch ComDBReleasePort und ComDBClaimPort in der COM-Port-Datenbank an . Das programmatische Ändern von COM-Port-Zuweisungen wird jedoch nicht als bewährte Methode betrachtet. Was passiert beispielsweise, wenn zwei weitere gleichzeitige Anwendungen um dieselbe COM-Zuweisung kämpfen?

Windows weist aus gutem Grund dynamisch COM-Port-Nummern zu. Idealerweise sollte Ihre Anwendung so geschrieben sein, dass sie nach dem bestimmten COM-Port sucht, den sie benötigt. Dies kann über Abfragen oder mithilfe der Windows Management Interface (WMI) erfolgen .

Wenn Sie einige Anwendung sind Referenzierung, dass jemand anderes geschrieben hat, und du bist gerade mit jemand anderem Programmdesign (oder deren Fehlen) stecken, dann können Sie das Hinzufügen eines betrachten Batch - Skript zum Ändern der Registrierung Schlüssel unter HKLM\Hardware\DEVICEMAP\SERIALCOMMbeim Start, da die Es ist unwahrscheinlich, dass neue Werte zwischen Neustarts bestehen.

Ich weiß nicht, wie gut diese letzte Option funktionieren würde, aber wenn Sie ein ernsthafter PowerShell- oder Python- Benutzer sind, können Sie theoretisch eine der Skriptsprachen verwenden, um direkt auf die APIs zuzugreifen, die zu Beginn meiner Antwort einmalig erwähnt wurden COM-Port-Neuzuweisung.