Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Hook verhält sich seltsam

Empfohlene Antworten

Veröffentlicht

Hallo,

Ich will ein Programm schreiben, welches einen Hook für ein anderes Programm insatlliert. Dieser Hook soll sämtliche WM_CHAR Nachrichten abfangen und sie einem globalen char Array, der mir einer index Variable durchalufen wird, gleichsetzen. Wenn ich also danach einige beliebige Tasten drücke, sollte der char Array ausgegeben werden und nicht die Zeichen der gedrückten Tasten. Das ganze funktioniert ganz gut, doch manchamal werden einzelne Zeichen des char Array nicht ausgegeben. Wenn im Array z.B der String "Hallo Forum!" abgelegt ist und ich danach einige Tasten drücke erscheint z.B "Hall Forum!" im Edit-Feld. Wiso ist dies so? Ich ziemlich ratlos. Hier noch die Hook-Funktion.

MSG *Nachricht; 


if(nCode<0) 

CallNextHookEx(hook,nCode,wParam,lParam); 



switch(nCode) 

{ 

case HC_ACTION: 

Nachricht=(MSG*) lParam; 

if(Nachricht->message==WM_CHAR) 

{ 


/*Der Char Array Schrebivorlage und der integer zaehler sind gloabal deklariert*/ 

Nachricht->wParam=Schreibvorlage[zaehler]); 


lParam=(LPARAM)Nachricht; 

zaehler++; 

return CallNextHookEx(hook,nCode,wParam,lParam); 

} 

default: 

break; 

} 

return 0; 

}

Im Voraus besten Dank für sämtliche Antworten.

Wie ich schon hier geschrieben habe, sollst du, wenn du CallNextHookEx aufrufst, den Rückgabewert dieses Aufrufs zurückgeben. Außerdem sollst du nur dann 0 zurückgeben, wenn du einen guten Grund dafür hast, dass andere Hooks diese Nachricht nicht sehen sollen.

Die Zuweisung an lParam ist überflüssig.

Darüber hinaus wirst du wohl den Debugger bemühen müssen. Möglicherweise kann man aus den Werten in Nachricht->lParam etwas folgern.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.