![]() |
Keyboard Hook in einem Dienst möglich?
Hallo!
Ich habe mir die anderen Threads zum Thema Hook und zu den Diensten schon angesehen. Leider fehlen mir dazu noch ein paar Dinge, da ich mich erst neu mit diesem Thema beschäftige! Ist es möglich in einem Dienst eine Nachrichten Schleife ala WndProc zu starten??? Wenn ja wie?? Ist es möglich in einem Dienst ohne DLL eine Hook zu installieren??? (was mir ja im Prinzig schon gelungen ist, leider ruft der Hook meine KeyboardProg nicht auf) Das ganze benötige ich um eine zusätzliche Tastatur in unserem Kassensystem zu integrieren. Zusätzlich läuft über den Tastaturanschluß noch ein Barcodescanner. Ich möchte auch über die Geschwindigkeit der Eingaben Bescheid wissen das diese Einfluss auf die Programmsteuerung haben... Also eine etwas komliziertere Geschichte. Vielen Dank für Eure Hilfe!!! Stefan |
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Ja, weil Dienste auch in einem Desktop-Objekt einer WindowStation ausgeführt werden und weil jeder Thread (auch ohne Fenster) eine Message-Queue haben kann. Nein, weil Du wahrscheinlich versuchen willst, mit dem Fenster vom interaktiven Desktop aus (womit einer der aktuellen Benutzer arbeitet) zu kommunizieren. Das wird deshalb schwierig, weil Fenster-Nachrichten auf den aktuellen Desktop beschränkt sind. Zudem sollten Dienste, welche unter dem Systemkonto ausgeführt werden (aus Sicherheitsgründen) nicht 'interaktiv' (eine Verbindung zum interaktiven Desktop) sein - und somit werden sie in einem eigenen, nicht-interaktiven Desktop ausgeführt. Zitat:
Lokale Hooks, ja. Globale Hooks, nein. Zitat:
Zitat:
|
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Die meisten scheuen es doch nur, weil die APIs zum Modifzieren der ACLs, SDs usw. usf. etwas friemelig sind :zwinker: Ich vergaß die Stichworte: - ![]() - ![]() - ![]() - ![]() - ![]() |
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Zitat:
Zitat:
|
Re: Keyboard Hook in einem Dienst möglich?
Hmmm... Puuh!
Das scheint ja doch schwierig zu werden :roll: Ich wäre ja froh wenn ich mit meinem Dienst die Tastatur hooken könnte. Irgendwie kann ist Ihn starten und er beendet sich auch nicht selbständig. Habe den Hook jetzt in eine DLL gepackt. Wie bei AyaKoshigaya's DLL nur das ich mir die Daten erst mal wegschreibe. Senden kann ich sie an meinen Dienst ja nicht, magels Fensterhandle... Aber kann es denn sein dass ich so auch nicht an das Benutzerdesktop ran komm, also dessen Eingaben nicht bekomme?? Es wird anscheinend gar nichts aufgezeichnet. Den Hook
Delphi-Quellcode:
gibts bei meiner windows.pas auch garnicht :wall:
WH_KEYBOARD_LL
Für die zusätzliche Tastatur gibts keine Treiber, braucht man normal auch nicht. Ich möchte nur die die Eingaben kontrollieren, da es sich um ein Kassenprogamm mit sehr vielen Funktionen handelt wo es für mich schon einen Unterschied macht ob die Eingaben von einem Barcode kommen oder von Hand getippt werden was sich nur im Tempo unterscheidet. Stevie |
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Zitat:
|
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Zitat:
Zitat:
|
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Zitat:
Mag sein, aber jeder fängt mal an! Wenn man sich nicht dran gibt kann man ja nix lernen, oder? Bei mir ist es 10 Jahre her als ich mich das letzte mal mit hooks rumgeschlagen habe, zur komunikation zwischen C++ und Visual Basic! Ich nutze jetzt die Delphi 2005 Version und da ist die Konstante eben nicht in der windows.pas drin! Stefan |
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
|
Re: Keyboard Hook in einem Dienst möglich?
Zitat:
Ich muß dafür nun eben ne Lösung finden... Danke aber trotzdem! Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr. |
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 by Thomas Breitkreuz