AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Erhöhen der Maus-/Tastaturpriorität
Thema durchsuchen
Ansicht
Themen-Optionen

Erhöhen der Maus-/Tastaturpriorität

Ein Thema von Borti · begonnen am 12. Okt 2004 · letzter Beitrag vom 15. Okt 2004
Antwort Antwort
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#1

Erhöhen der Maus-/Tastaturpriorität

  Alt 12. Okt 2004, 17:35
Hallo!
ich hab mir ein Programm geschrieben, dass einen Thread mit der Priorität 31 abspaltet. (Diese hohe Priorität ist für die Funktion des Programmes unablässlich)
Leider muss der Benutzer über Tastatur oder Maus den Nebenthread beenden können, was natürlich bei dieser hohen Priorität nicht klappt. (Hab mich quasi selber ausgesperrt) Kann ich dafür nicht die Priorität der Tastatur/Maus auch auf 31 setzen, um ein beenden zu ermöglichen?
Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 13. Okt 2004, 08:55
Moin!

Hä? Dann hast du das mit den Prioritäten nicht ganz richtig gemacht wenn du sowas brauchst. Wenn dein Programm eine solche hohe Priorität braucht, dann kennzeichne es Windows gegenüber als CBT Task und du erhälst mehr Prozesszeit und eine höhere Priorität und ander Vorzüge. Ansonsten würde ich sagen das dein Weg über den Thread mit einer solch hohen Priorität der falsche Weg zur Lösung deines Grundproblems ist...

MfG
Muetze1
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#3

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 13. Okt 2004, 13:09
Was ist bitte ein CBT Task?
("Computer based training" nach google )
Danke,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 13. Okt 2004, 13:38
Moin!

CBT hast du ja nun schon geklärt, im deutschen auch als CUA (computerunterstützte Ausbildung) bekannt. Durch eine spezielle Bekanntmachung gegenüber Windows kannst du ein Programm als CBT kennzeichnen und dann erhält dieses Programm mehr Möglichkeiten und vor allem auch grundlegend mehr Prioritäten. Ein CBT Programm kann in das System eingreifen bzw. sich alles mögliche abfangen, andere Prozesse begrenzen/beschneiden. Damit hättest du eine grössere Wahrscheinlichkeit das dein Thread besser läuft ohne eine solch hohe Priorität und gleichem Ergebnis. Grundlegend solltest du aber eher dazu übergehen eine grundlegend andere Lösung zu finden, weil einen Thread auf Realtime laufen zu lassen ist mehr als "krank" und zeigt eigentlich recht eindeutig das die Problemlösung falsch angegangen wurde. Das sieht für mich schon fast wie ein ständiges polling aus und da sollte man dringen mal schauen ob es nicht auch eine trigger gesteuerte Möglichkeit gibt.

MfG
Muetze1
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#5

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 13. Okt 2004, 17:04
richtig,
der Thread pollt mir den LPT-Port und es darf zwischen zwei Abfragen höchstens 1msec. liegen.

Wo krieg ich den Informationen über diese CBT-Programme? (bei google krieg ich nur Vorschläge über Didaktik)
Und wie kann ich mit Delphi mein Programm gegenüber Windows als CBT kennzeichen?

Danke,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#6

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 13. Okt 2004, 18:51
Zitat:
richtig,
der Thread pollt mir den LPT-Port und es darf zwischen zwei Abfragen höchstens 1msec. liegen.
Ich muss sagen, ich weiß nicht wie...
aber man kann den LPT-Port abhören, ohne die CPU zu 99,9% auszulasten!
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 13. Okt 2004, 23:29
Auf ein Abtastintevall von 1msec kommt man mit Windows doch eh nicht, oder!? Weil den Scheduler wirst du nicht platt kriegen, und das ist auch gut so .
Da wäre imho ein Echtzeitsystem geeigneter.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#8

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 14. Okt 2004, 16:59
Ich benutze QueryPerformanceTimer. Im Schnitt hab ich eine zeit von 20nanosec. zwischen zwwei Abfragen. Die 100% CPU auslastung kommt halt daher, dass der thread eine Schleife ist, die über eine tastatureingabe beendet wird.
Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Benutzerbild von Spezi1980
Spezi1980

Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 14. Okt 2004, 17:17
Wieso mußt du nen LPT Port in einem Intervall von 1ms abfragen? Die Übertragungszeit von nem LPT Port ist so gering, dass IMHO der Status an dem Port sich eh nur alle paar Millisekunden ändert.

Da reicht es auch aus, wenn der Port aller 10ms oder noch mehr abgefragt wird, weil du eh nicht schneller auf ein Ereigniss reagieren kannst als die Daten reinkommen.
Robert
Codito, ergo sum.
>>I code, therefore I am<<
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#10

Re: Erhöhen der Maus-/Tastaturpriorität

  Alt 15. Okt 2004, 12:54
an dem LPT-Port hängt eine von mir selbst entwickelte hardware, die eine auflösung von 1msec braucht.
Das der LPT-Port hinterherkommt denk ich schon, wenn ich mir die Datenblätter der verwendeten TTL-ICs anschaue.
(Aber wir driften vom Thema ab! Ich versuch das immer noch mit der tastaturpriorität zu regeln)
Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:50 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