Deutsch
Forum

Klick\Tastenanschlag abfangen

 

Julian
Schmidt
Hallo,
wie kann ich das Empfangen eines Klicks (oder generell einer beliebigen Taste) auf einen beliebigen Control abfangen und in meinen Programm selbst mit einer Funktion belegen.

LG

Julian
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.10.2012  
 



Z.B. einfach hiermit: [...] 

Einfach z.B. in eine subclassproc packen.
 
06.10.2012  
 




Julian
Schmidt
hmmmm....gehts auch ohne? Ich kenne mich mit Subclassprocs nicht so gut aus. Aber diese Funktionalität soll nicht vom Programmstart bis Ende aktiviert sein, sondern nur bei bestimmten Ereignissen. Am liebsten wäre es mir, wenn du einfach mal ein Code-Beispiel machen würdest
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.10.2012  
 



Wahrscheinlich wäre es einfacher wenn Du ein subClassProc-Beispiel aus der

Hilfedatei entnimmst - das Prinzip ist denkbar einfach und Du kannst ja selbst

bestimmen wann die Proc greift z.B. in dem Du einfach per SubClass-Befehl die

subClassProc an- oder abschaltest.
 
06.10.2012  
 




Julian
Schmidt
Auf was für ein Handle bezieht sich den mein Subclass-Proc, hWnd? Ich möchte das wenn ich zum Beispiel auf einen Button außerhalb des Programms klicke, dieses Programm den Klick nicht empfängt, ich ihn in meinen Programm allerdings erfassen kann.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.10.2012  
 



Glaub mir, einfach Beispiel anschauen -

ist alles viel einfacher als das hier.
 
06.10.2012  
 




Julian
Schmidt
Ok ich weiß jetzt wie man Tasten per Subclassing abfragt. Aber wie mache ich es, das die Message nicht an anderen Controls gesandt wird?
KompilierenMarkierenSeparieren
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.10.2012  
 




E.T.
...wäre mal die Frage zu klären, ob du die Messages von deinem eigenem Programm oder von einem ganz anderem Prog abfangen willst...
Du schreibst nur immer von anderen Controls  , da ist es schon ein Unterschied, ob es es dein eigenes Progg ist oder ein fremdes Progg
 
XProfan X2
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
07.10.2012  
 




Julian
Schmidt
Eig. soll jedes Prog. und jedes Control die Message nicht empfangen können nur mein Eigenes. Ich dachte eig. das ich mich einigermaßen verständlich ausgedrückt hatte, als IF nicht mehr nach gehakt hat...
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.10.2012  
 



Julian57 (07.10.12)

Ich dachte eig. das ich mich einigermaßen verständlich ausgedrückt hatte, als IF nicht mehr nach gehakt hat...


Grüße!

Du hast Dich bestimmt einigermaßen verständlich ausgedrückt,

ob es ausreichend war kann ich jedoch (noch) nicht recht einschätzen.

Es gibt z.B folgende Schichten zu bedenken:

Threads
Desktops
Prozesse
Benutzer
Systeme

... wobei keine mir bekannte API alle diese Schichten abdecken kann -

so ist z.B. ein beliebiges Control auch ein Control auf einem anderen

Computer (System) oder auch ein Control erzeugt aus einem anderen

Prozess eines anderen "Benutzers" oder auch ein Control erzeugt aus

einem anderen "Prozess" oder ein Control erzeugt auf einem anderem "Desktop"

oder ein Control erzeugt aus einem anderen Thread. SubClassing deckt imho

die ersten zwei Schichten dieser Auflistung ab und greift somit nicht für Controls

die aus anderen Prozessen erzeugt wurden. In Deinem Fall kommt vielleicht

SuperClassing in Frage oder vielleicht eher noch ein systemweiter KeyBoard-

Hook. Beides sollte man nicht auf eine nicht-native Proc per ProcAddr anwenden

sondern aber auf eine nProc (schließt diese Lücke) um Programm-Abstürze

zu vermeiden. Keyboard-Hook findest Du auch per Suche nach Hook.

Beispiele:

Maus Hook: [...]  (sollte auf nProc umgestellt werden)
Tastatur Hook: [...] 
Auch imho sehr cooles Beispiel: [...] 

Du kannst per Hook wohl auch das Weiterleiten der Taste verhindern -

siehe hierzu hier [...]  die Anmerkungen bei "Return value".
 
08.10.2012  
 




Julian
Schmidt
hmmmm...na gut. Kurze Zwischenfrage kann man den Keyboard-Hook auch mit normalen XProfan verwenden.
Im Wesentlichen würde es mir reichen wenn der Hook auf zwei Controls dessen Handels mir bekannt sind angewand würde, obwohl es natürlich sein könnte das auch andere Controls diesen auswerten. Damit würde zumindest das "SuperClassing" wegfallen.
Um nochmal alles auf einen Punkt zu bringen: Ist das Verhindern des Weiterleitens einer Taste per Keyboard-Hook an ein Control auch ohne XPSE möglich?
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
08.10.2012  
 



Julian57 (08.10.12)

Um nochmal alles auf einen Punkt zu bringen: Ist das Verhindern des Weiterleitens einer Taste per Keyboard-Hook an ein Control auch ohne XPSE möglich?


Ist ja schon oft auf den Punkt gebracht. Möglich ja, aber nicht absturzsicher.

Besonders sowas war ein Grund für XProfan die nProcs herzustellen.

Calls auf mit ProcAddr bezogene Procs sind nicht threadsicher wenn es keine

nProcs sind, Hooks produzieren nunmal APC's ( [...]  ) .

Kleiner Auszug aus dem Vorwort der Hilfe von XPSE ( [...]  ):
Julian57 (08.10.12)
NProc-Funktionen werden in Assembler umgewandelt, um Hooks, Subclassing, Threads, Callbacks und all die Dinge zu programmieren, bei denen es auf Threadsicherheit und hohe Geschwindigkeit ankommt.


Das steht da ja nicht weil es absonderlich witzig ist sondern XProfan-

Programmierern ermöglicht auch alles andere zu programmieren wo XProfan

selbst nicht so stark oder geeignet ist.
 
08.10.2012  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

14.597 Betrachtungen

Unbenanntvor 0 min.
Normann Strübli29.01.2023
ByteAttack05.08.2018
rquindt19.09.2015
Andreas21.07.2015
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Julian Schmidt (7x)
iF (5x)
E.T. (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie