Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Comport sperren? (https://www.delphipraxis.net/73668-comport-sperren.html)

Privateer3000 22. Jul 2006 12:23

Re: Comport sperren?
 
Also, keine der laufenden Software hält den Port offen. Das ist sicher.
Fragen wir mals so, wenn ich jetzt meiner applikation den Port offen halte,
wie verhalten sich dann die anderen? Kommt es zum Absturz, oder nur zu fehlermeldungen?

Gibt es noch andere möglichkeiten, ausser den Stecker rauszuziehen ;-)
Der Hintergrund als solcher ist, bedient wird über ein 3M-Touchpanel.
Wenn man über einen Schalter dasTouchscreen ausschaltet (sperrt),
bleibt der Touch aktiv. D.h. man kann noch Aktionen ausführen obwohl
der Bildschirm schwarz ist.Sprich: ein Druck auf die richtige Stelle
und über den comport wird die Lade geöffnet.

ratlos
Privateer

jensw_2000 22. Jul 2006 13:10

Re: Comport sperren?
 
Zitat:

Zitat von Privateer3000
Fragen wir mals so, wenn ich jetzt meiner applikation den Port offen halte,
wie verhalten sich dann die anderen? Kommt es zum Absturz, oder nur zu fehlermeldungen?

Wenn die Anwendung den belegten COM-Port öffnen möchte, wird eine Exception ausgelöst oder zumindest ein Fehler an die Anwendung zurückgegeben.
Was die Software mit dieser Information macht, musst du auspprobieren. Das kann von "Garnichts" (kommentarlos abgefangene Exception) über Meldungen ("Kann COM1 nicht öffnen", "Kommunikationsfehler mit Schublade" usw.) bis hin zum Programmabsturz durch eine unbehandelte AV alles sein.

Zitat:

Zitat von Privateer3000
Gibt es noch andere möglichkeiten, ausser den Stecker rauszuziehen ;-)
Der Hintergrund als solcher ist, bedient wird über ein 3M-Touchpanel.
Wenn man über einen Schalter dasTouchscreen ausschaltet (sperrt),
bleibt der Touch aktiv. D.h. man kann noch Aktionen ausführen obwohl
der Bildschirm schwarz ist.Sprich: ein Druck auf die richtige Stelle
und über den comport wird die Lade geöffnet.

hmm.
Wenn sich die Software bei belegtem COM-Porr ruhig verhält, dann musst du "nur noch" eine Möglichkeit finden, einen ausgeschalteten Monitor zu erkennen.
Wenn du was gefunden hast, aktivierst du dein CPortLib-COMPort wenn der Monitor inaktiv ist.
Delphi-Quellcode:
(CPortLib_COMport.active := NOT Monitor.active)
Eventuell kannst du den Ein-Aus Zustand des Monitors herausfinden, indem du über den Display Data Channel die PNP Daten des Monitors abfragst. >> Keine Daten = Monitor aus, Daten >> Monitor an ...
Dafür gibt aber sicher noch bessere Wege ...

Privateer3000 22. Jul 2006 13:19

Re: Comport sperren?
 
Das klingt sehr interessant.
Davon habe ich auch noch nie gehört, den Status des Monitors
abzufragen.

Hat jemand damit schonmal zu tun gehabt?

In der Tat wäre es eine Alternative,als mit
einem Button die Sperrung zu aktivieren/deaktivieren.

jensw_2000 22. Jul 2006 13:35

Re: Comport sperren?
 
Schau mal hier im MSDN.

Die WMI Klasse "Win32_DesktopMonitor" liefert ein paar interessante Werte zurück
Code:
0x07 Power Off
0x8 Off Line
0xD Power Save - Unknown
0xE Power Save - Low Power Mode
0xF Power Save - Standby
0x11 Power Save - Warning
Infos zur Verwendung von WMI mit Delphi gibt es hier im Forum reichlich.


Schöne Grüße,
Jens
:hi:

Privateer3000 22. Jul 2006 16:30

Re: Comport sperren?
 
vielen Dank,
sich da durch zuarbeiten dürfte etwas länger dauern.
wie erhält man die Rückgabewerte ?
Ist da in den systemutils von Delphi nichts vorgesehen?

jensw_2000 22. Jul 2006 20:48

Re: Comport sperren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und jetzt erwartest du von uns, das wir uns für dich durch das Thema arbeiten ?
Ist nicht dein Ernst oder :roll: ?

... ich will man nich so sein.

Weil mich das Thema WMI schon länger interessierte, habe ich mit Hilfe des MSDN und dieses Artikels die Properties der Klasse "Win32_DesktopMonitor" bei eingeschaltetem und ausgeschaltetem Monitor ausgelesen.

Bei meinem uralt ADI 21" (CRT) wurde die Availability in beiden Fällen mit den Wert "0x3 Running/Full Power" ausgelesen.

Eventuell funtioniert es ja bei deinem Touchpanel.

Zum Testen hänge ich dir mam meine "Spiel-Exe" an.

Den zugehörenden Sourcecode bekommst du mit den beiden Links in 15 Minuten selbst hin.
Soviel Eigenenergie muss sein :warn: .



Schöne Grüße,
Jens
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.
Seite 2 von 2     12   

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