AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Com (seriell) Schnittstelle belegt
Thema durchsuchen
Ansicht
Themen-Optionen

Com (seriell) Schnittstelle belegt

Ein Thema von runger · begonnen am 2. Mai 2006 · letzter Beitrag vom 5. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
runger
(Gast)

n/a Beiträge
 
#1

Com (seriell) Schnittstelle belegt

  Alt 2. Mai 2006, 06:18
Hallo,

weiß irgendjemand wie man feststellt ob eine Com Schnittstelle (seriell) belegt ist oder nicht und wie man diese zwangsschliesst?
ich benutze Asych pro. Ich habe dort den Code durchgesteppt aber nur eine message gefunden (an das momentan laufende Programm) die zum schliessen auffordert.
Irgendwo in der registry (oder sonstwo) muss es doch einen Hinweis geben wer die Schnittstelle offen hat.

Wäre nett wenn mir jemand helfen könnte.
Rainer
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Com (seriell) Schnittstelle belegt

  Alt 2. Mai 2006, 08:02
Wer sie offen hat? Da müsstest du tief in die Trickkiste greifen - wird bestimmt nicht einfach.
Ob wer sie offen hat? Einfach versuchen zu öffnen, Windows verweigert dir dann den Zugriff gesetz den Fall, dass sie schon verwendet wird.
Zwangsschliessen? Bietet die WinAPI nicht an und mir ist soweit auch kein Weg bekannt dies zu realisieren. Einzige Möglichkeit die ich sehe, wäre den Prozess abzuschiessen, welcher die Schnittstelle offen hält, in der Hoffnung, dass diese mit geschlossen wird von Windows. Aber dazu müsstest du erstmal rausbekommen, welcher Prozess die Schnittstelle offen hält...
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#3

Re: Com (seriell) Schnittstelle belegt

  Alt 2. Mai 2006, 11:46
Hm,

eine ganz harte Methode wäre den Treiber für die entsprechende Com zu deaktivieren und dann wieder zu aktivieren.

Rainer
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#4

Re: Com (seriell) Schnittstelle belegt

  Alt 3. Mai 2006, 08:08
Hallo,

ich bin mit meinen Bemühungen etwas weiter. Mit WMI lässt sich über
win32_serialportconfiguration
und Isbusy ermitteln ob die Schnittstelle belegt ist oder nicht.
Es gibt auch einen Parameter der nach der ID des Prozesses riecht der die Schnittstelle
unter Kontrolle hat.
Wenn ich den jedoch auslese bleibt der resultierende String leer. (SettingsID)

Vielleicht hat jemand noch eine Idee dazu!
Rainer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Com (seriell) Schnittstelle belegt

  Alt 3. Mai 2006, 10:34
Hallo Rainer,

SettingsID ist kein Handle zum owning process, sondern ein identifier für CIM-konformes Management der Schnittstelle. Da mehrere WMI Management Instanzen möglich sind, können die sich dort verewigen. Das ist meine Auffassung davon.

Was hast du vor? Willst du die Kontrolle über einen Port an dich reißen, auch wenn ein anderer Prozess diese Resource gerade im Zugriff hat?

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#6

Re: Com (seriell) Schnittstelle belegt

  Alt 3. Mai 2006, 11:22
Hallo marabu,

danke für deine Antwort, aber leider bekommt man über WMI fast nichts raus, sodass ich auf Vermutungen und rumstochern angewiesen bin.

Zu deiner Frage:
Eigentlich ist das Ziel rauszukriegen wer die Schnittstelle blockiert und dann den entsprechenden Prozess zu stoppen.
Leider tritt bei uns öfter der Fall auf, dass es völlig unklar ist wer die Schnittstelle blockiert.
Es ist weder im Taskmanager noch sonstwo irgendein Programm zu sehen das sie kontrolliert.
Abmelden nützt nichts, nur totaler shutdown und ausschalten, dann ist sie wieder frei.
Mir ist egal wie, aber ich bin mit allem zufrieden was diesen Zustand beendet eventuell auch mit einem Zwangsschliessen der Schnittstelle.

Rainer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Com (seriell) Schnittstelle belegt

  Alt 3. Mai 2006, 13:04
Hallo Rainer,

ich vermute du wirst dich mit den undokumentierten Internas von Windows auseinandersetzen müssen um dein Ziel zu ereichen. Das Tool ProcessExplorer scheint in der Lage zu sein die Information zu beschaffen, die du brauchst.

marabu
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#8

Re: Com (seriell) Schnittstelle belegt

  Alt 4. Mai 2006, 12:02
Hallo,

es hat sich herausgestellt, dass das Problem etwas mit dem 16 Bit Subsystem von WinXP zu tun hat. Nur alte DOS Programme die abgeschossen werden lassen die Schnittstelle offen.
Ohne totales Abschalten des PC's ist dann nichts mehr zu machen.

Rainer
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#9

Re: Com (seriell) Schnittstelle belegt

  Alt 5. Mai 2006, 07:28
Hallo,

ich kann nicht glauben, dass, ausser mir, noch nie jemand dieses Problem gehabt hat. Gibt's denn hier niemanden der mir helfen kann?

Rainer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Com (seriell) Schnittstelle belegt

  Alt 5. Mai 2006, 09:01
Hallo Rainer,

sieht so aus, als wärst du tatsächlich der erste, der ernsthaft nach einer Lösung sucht. Die Konstellation ist auch etwas verwegen, wenn auch durchaus realistisch - 16-bit Oldtimer als WOW subprocess laufen lassen und abschießen, wenn es Probleme gibt. Besser du schießt den WOW-Prozess gleich mit ab - oder hast du das gemacht und die Resourcen werden trotzdem nicht freigegeben?

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz