AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Comport sperren?

Ein Thema von Privateer3000 · begonnen am 21. Jul 2006 · letzter Beitrag vom 22. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Comport sperren?

  Alt 21. Jul 2006, 14:29
Hi folks,

Wie stellt man das an, wenn man einen Comport sperren
möchte das da kein Signal ankommt oder ins nirvana umgeleitet wird.
Sinn und Zweck ist, am Comport ist ein Interface für eine Steuerung
angeschlossen. Es sollte aber möglich gemacht werden,dass selbst wenn
normalerweise ein chr an den Port gesendet wird, diesen abzufangen.
Per button vielleicht...aber auch wieder den Port einschalten.
Ich benutze die CPortLib von Sourceforge.

Ich hoffe ungefähr richtig formuliert zu haben , was ich möchte

Lg
Privateer
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Comport sperren?

  Alt 21. Jul 2006, 14:35
HI,
kannst du bitte etwas genauer sagen was du möchtest? Möchtest du aus deiner Anwendung nur bei Bedarf auf den Port zugreifen oder möchtest du, dass der Port unter Windows für jedes Programm nicht zugänglich ist?

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Comport sperren?

  Alt 21. Jul 2006, 14:41
Hi,
es geht immer noch um die Kassenschublade.
Es soll per button verhindert werden das die
Lade, die jam Comport ist, geöffnet werden kann.
Sprich dieses und ein anderes Programm welches dies
tut. Also systemweit den Comport dicht machen oder wieder
öffnen.
Danke!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Comport sperren?

  Alt 21. Jul 2006, 14:47
Also der einfachste Weg ist, dass du einfach dafür sorgst, dass dein Programm sehr früh gestartet wird (z.B. im Autostart) und dann auch gleich Connected = True setzt. Wird der ComPort erstmal von einer Applikation verwendet, so ist der Zugriff von aussen gesperrt. Das könnte dann auch dein Problem werden, wenn eine andere Anwendung den Port vor dir öffnet und offen hält.
In deinem eigenen Programm kannst du dann sehr leicht regeln, wann wirklich etwas gesendet wird und wann nicht. Hier reicht ja eine einfache if-Abfrage aus. Je nachdem ob irgendwas gemacht wurde wird dann über den Port gesendet oder nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Comport sperren?

  Alt 21. Jul 2006, 14:50
Nein, es muss gewährleistet sein,
dass auch andere Programme noch
darauf zugreifen können und müssen.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: Comport sperren?

  Alt 21. Jul 2006, 15:04
Hm, dass macht die Sache natürlich nicht leichter.
Also ich weiß dir hier nicht weiter zu helfen. Ich denke es gibt mehrere Möglichkeiten (mit denen ich mich in dem Fall dann zu wenig auskenne).
Das eine ist, dass es wirklich eine Methode gibt den Port zu aktivieren/deaktivieren.
Die andere Möglichkeit ist es, dass du mit einem Hook arbeitest. Dann würdest du immer mitbekommen, wenn jmd. etwas an den Port schicken möchte und kannst es ggf. einfach umleiten.
Die letzte Möglichkeit wäre es, dass du einen virtuellen Port erstellst (keine Ahnung wie, dürfte auch auf Hooks basieren), den alle Programme ansprechen. Hier kannst du dann wieder weiterleiten oder nicht.
Das alles ist wohl nicht ohne. Musst du mal schauen ob hier schon jmd. etwas in der Richtung versucht hat und/oder ob du vielleicht bei Google fündig wirst.

Vielleicht hat ja auch jmd. anderes einen Vorschlag!
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Comport sperren?

  Alt 21. Jul 2006, 15:28
Was würde passieren, wenn ich mit Open
den Port öffne (per Button)? Ist er
dann für andere Anwendungen gesperrt?
Und zum freigeben wieder close sende?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Comport sperren?

  Alt 21. Jul 2006, 16:16
Wenn du den mittels open öffnest, dann werden die anderen Programme meckern. Da solltest du deswegen auch immer ein try ... except um eine eigene Anwendung bauen. Es kann immer mal was passieren (nur nebenbei bemerkt).
Jedenfalls ist im Besten Fall ein solches Ereignis behandelt und du siehst einfach, dass der Port in Benutzung sei. In schlechteren Fällen führt das zu einer runtime Exception, die nicht behandelt wird (Programm stürzt ab). Aber schreiben kann keiner.
Probier es einfach mal aus. Schreib dir ein Programm, dass einfach nur den Port öffnet. Das startest du und während es läuft rufst du das Hyperterminal auf und versuchst dich mit dem gleichen Port zu verbinden.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Comport sperren?

  Alt 21. Jul 2006, 23:49
Dann bliebe ja nur, sendungen an den/die Port(s) abzufangen und umzuleiten...
Hat jemand eine solche Idee?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#10

Re: Comport sperren?

  Alt 22. Jul 2006, 02:41
Das Abfangen funktioniert imho nicht so einfach.
Wenn die Kassensoftware z.B. den Port permanent offen hält, dann kannst du ihn nicht nehr Öffnen oder anderweitig "verbiegen", um den Steuerbefehl abzufangen.
Sollte die Kassensoftware den Port bei Bedarf belegen, kannst du ihn duch permanentes Offenhalten blockieren. Kabel rausziehen bewirkt das Selbe und erfordert keine Programmierarbeit.

Eventuell findest du irgendwo Hinweise zur Erstellung eines SerialPort Treibers. Dann kannst du dir einen für einen virtuellen COM-Post basteln, über den du die Kassensoftware mit deinem "Filter-Tool" verbindest. Dann kannst du alle, an den Virt-Com-Post gesendeten Daten prüfen, verändern und anschliessend an den COMx weiterleiten.


Schöne Grüße,
Jens
  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 08:28 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