|
|
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. А WH_MOUSE_LL ставиться и робит без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 02:12:31 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9 Код: pascal 1. 2. EXE или DLL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 05:35:11 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
EXE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 06:02:58 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9EXE Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 06:20:16 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
В EXE нельзя создавать глобальные хуки, только под конкретную нить. Хуки на глобальные нити разрешены только в DLL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 12:07:18 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
X-CiteВ EXE нельзя создавать глобальные хуки, только под конкретную нить. Хуки на глобальные нити разрешены только в DLL Да, спасибо. Когда то читал про это, но на практике WH_MOUSE_LL встал в EXE, а он вроде тоже бы глобальный. Сейчас пишу в DLL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 12:09:59 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Так, попытался реализовать через длл Код EXE Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. DLL Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. При запуске EXE в МЕМО добавляется одна строка, хотя я никаких окон не открывали и дальше тишина. Где то накосячил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 13:19:18 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9, А зачем в CBTProc вызывать CallNextHookEx 2 раза ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 13:22:01 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
schiMiracle9, А зачем в CBTProc вызывать CallNextHookEx 2 раза ? Если оставить Код: pascal 1. 2. 3. 4. 5. То форма потом ни на что не реагирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 13:25:42 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
schiMiracle9, А зачем в CBTProc вызывать CallNextHookEx 2 раза ? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. При таком варианте форма не зависает, но в МЕМО ничего не пишется, лишь один хендл при установке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 13:30:59 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 15:15:42 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9schiMiracle9, А зачем в CBTProc вызывать CallNextHookEx 2 раза ? Если оставить Код: pascal 1. 2. 3. 4. 5. То форма потом ни на что не реагирует. Это метод тыка теперь такой ? CallNextHookEx надо вызывать всегда, но один раз. "Calling CallNextHookEx is optional, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call CallNextHookEx unless you absolutely need to prevent the notification from being seen by other applications." https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644974(v=vs.85).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 15:28:48 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Все работает... Просто не все программы походу генерируют событие. Например Calc.exe почему то не генерирует вызов HCBT_CREATEWND Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 16:24:54 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
X-CiteВсе работает... Просто не все программы походу генерируют событие. Например Calc.exe почему то не генерирует вызов HCBT_CREATEWND Если это Windows 10 то, возможно, это потому что calc.exe там - это не нативное приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 16:26:05 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
alekcvpX-CiteВсе работает... Просто не все программы походу генерируют событие. Например Calc.exe почему то не генерирует вызов HCBT_CREATEWND Если это Windows 10 то, возможно, это потому что calc.exe там - это не нативное приложение. Windows 7 Можно поставить API Monitor и посмотреть вообще что вызывает... Походу все что работает через виртуальные машины, java .net это не отлавливается.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 16:32:54 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Я до этого ShellHookWindow тестил, там отлов новых окон отлично работает. И на этом всё. А, ну ещё FLASH тоже хорошо работает. Смена активного окна не работает. А отлов уничтожения окна работает, но там один и тот же хендл окна по 10 раз присылается. Вот решил потестить SetWindowsHookEx с WH_CBT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 16:56:22 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
schi "Это метод тыка теперь такой ?" В точку) Я до этого не практиковал установку хуков. Обычно беру код из интернета, тестирую, а потом разбираю. А тут в инете 100500 вариантов из статей и ни один не робит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 17:04:10 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Итак весь день. Использовал код X-Cite с поправкой на Код: pascal 1. При установке хука постоянно сразу какой то wnd кидается, хотя я никаких окон не открывал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 17:25:57 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9, вот тебе рабочий код hook.dll Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. Если вкратце, то: Код: pascal 1. 2. 3. не канает, т.к. хук вызывается в контексте разных процессов, а в dll глобальные переменные глобальны только в рамках одного процесса, т.е. при выхове CBTProc в других процессах MyHook = AppWnd = 0. Ну и не забывай, что если винда x64, приложение x86 ставит хуки только на такие же, и надо делать отдельно x86 хук и отдельно x64 хук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 19:48:16 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
alekcvpне канает, т.к. хук вызывается в контексте разных процессов, а в dll глобальные переменные глобальны только в рамках одного процесса, т.е. при выхове CBTProc в других процессах MyHook = AppWnd = 0. Ну и не забывай, что если винда x64, приложение x86 ставит хуки только на такие же, и надо делать отдельно x86 хук и отдельно x64 хук. Кстати да... На моем скриншоте видно, что лог идет от приложения в которое внедрилась dll. Столбец AppName. Но это можно легко решить через SharedMemory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 20:55:17 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
alekcvp, Большое спасибо! "Ну и не забывай, что если винда x64, приложение x86 ставит хуки только на такие же, и надо делать отдельно x86 хук и отдельно x64 хук." Очень важная инфа на будущее, Только, на сколько я помню, x64 приложение работает с длл x64. Т.е. с одного приложения не получится сделать импорт функций из 2ух x86 и x64 длл. Потестил работу хука, он получается отлавливает все окна и главные и вложенные. В этом плане RegisterShellHookWindow мне больше подходит. И там пофиг на разрядность. Жаль что HSHELL_WINDOWACTIVATED молчит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 22:26:10 |
|
||
|
Не устанавливается хук WH_CBT
|
|||
|---|---|---|---|
|
#18+
Miracle9, Вы читали ее описание? автор[This function is not intended for general use. It may be altered or unavailable in subsequent versions of Windows.] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 22:33:07 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2041595]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
450ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 790ms |

| 0 / 0 |
