Einzelnen Beitrag anzeigen

Kas Ob.

Registriert seit: 3. Sep 2023
351 Beiträge
 
#2

AW: SetWindowsHookEx und WH_SHELL

  Alt 13. Okt 2023, 15:20
Not an answer but i don't have CodeSite installed, so i changed these calls to OutputDebugString.

My observation on Delphi XE8
1) It is working in the Debugger and no IDE crash.
2) There is a problem when it is running with the debugger, BUT the output is stopping after the first hook report, then nothing being captured in IDE EventLog.

with DebugView and the application running without a debugger the output is correct and there is no failure, so my deduction is the debugger is faulty or CodeSite is not prepared for MultiThreading inside the debugger with external Threads.

Also i remember a thing from the past, these hooks use OS threads, meaning they are external for the debugger and these are privileged threads, also TThread is faulty when it comes to ExternalThread in its implementation, as ThreadID will not give you the real thread ID if it is called from the thread itself, it will return DWORD(-2) always, so if the debugger is depending on TThread to external threads like the hook one in this case, then there is a big chance it is messing with its own threads causing the catastrophic failure.

Same about threadID can go with codesite.

Just guessing and hope it help.
Kas
  Mit Zitat antworten Zitat