Visual Studio - Windows tastatur kroge hænger debugger

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en plug-in DLL, der lanceres fra en sekundær (ikke GUI) tråd i hovedapplikationen. DLL'en skal tage fat på tastaturhændelser fra programmets hovedvindue. Jeg bruger SetWindowsHookEx() og det virker godt.


Men hvis jeg rammer et breakpoint i Visual Studio, mens krogen er aktiv, og så trykker du på en tast, Visual Studio og min applikation låser helt op. Dette er et problem, fordi jeg normalt bruger F-tasterne til at gå gennem kode. Hvis jeg bruger musen og fremad fra Visual Studio 's Debug menu, fungerer det fint. Men ved hjælp af F10 et al. Er sådan en vane, glemmer jeg normalt at bruge musen.


Er der noget, jeg kan gøre for at få mine tastaturgenveje tilbage? Eller en anden metode til at lytte til tastaturet?

Bedste reference


Det er temmelig uundgåeligt, at debuggerbruget stopper krogen fra at håndtere underretninger, så tastaturet bliver død. Brug af fjernbetjeningsenheden på en anden maskine er en god måde at debug kode som sådan. Du vil også gerne øge hook timeout så Windows ødelægger ikke krogen mens du fejler, HKEY\_CURRENT\_USER \ Kontrolpanel \ Desktop \ LowLevelHooksTimeout indstilling. Forudsat at du bruger WH\_KEYBOARD\_LL.