|
VB.net keyboard hook зависает
|
|||
---|---|---|---|
#18+
пытаюсь ловить нажатие клавишь через хуки. поймав нужное событие выполняется процедура, при этом происходит зависание пк на несколько секунд. думаю что это связано с многократным вызовом процедуры, или не знаю. но это зависание меня не радует. код класса keyboard hook Код: vbnet 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. 68. 69. 70. 71. 72. 73. 74.
ну и в процедуре события Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
при нажатии клавиш появляется меседж бокс и на пару секунд компьютер зависает в чем ошибка? и как избавиться от этих весел? IntroZorn(с) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 19:14 |
|
VB.net keyboard hook зависает
|
|||
---|---|---|---|
#18+
surbanecв чем ошибка? и как избавиться от этих весел? в использовании .NET в общем, и VB.NET в частности. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 06:20 |
|
VB.net keyboard hook зависает
|
|||
---|---|---|---|
#18+
ну и что теперь. изучать C и весь проект перешпехивать на другой язык и другую платформу?!. пока этого не особо хочется. конечно VB не особо хорош, но всетаки на NET он стал гараздо комфортным гибким и мощьным. чем старый Бэсик. по идее оптимальным вариантом на с++ печатать. но пока не особо получается изучением языка, в основном изза времени. вот и мучаемся с ВБ. =) а по теме просто я не знаю, может проще таймер повесить и отлавливать через API состояние клавиш . вроде есть getKeyState или чтото в этом роде(уже забыл давно такого не делал) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 07:04 |
|
VB.net keyboard hook зависает
|
|||
---|---|---|---|
#18+
surbanecпытаюсь ловить нажатие клавишь через хуки. поймав нужное событие выполняется процедура, при этом происходит зависание пк на несколько секунд. думаю что это связано с многократным вызовом процедуры, или не знаю. но это зависание меня не радует. Пиши лог того что происходит. Чтобы точно знать что и в какой последовательности отрабатывает. И второе: обработка события должна быть быстрой, т.к. пока она идет - обработка очереди сообщений окна стоит и ждет, т.е. если долго, то выглядит как будто зависло. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 07:09 |
|
VB.net keyboard hook зависает
|
|||
---|---|---|---|
#18+
Dima T, попробую лог сделать.. тут та и проблем, что мгновенно не получается, в коде у меня идет вызов процедуры, она запускает другую программу и ждет ее завершения. я еще пробовал сделать другой вариант, с помощью флагов сделал игнорирование обработки хука ( в классе). тоесть когда запускается моя процедура в классе(keybordhook) там где идет обработка хука и вызов событий игнорируется все это дело, тоеть пропускается. примерно это так выглядит Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
когда вызывается моя процедура, ставлю workFlag=True думал что поможет... но нифига. такое ощущение что это не многократный вызов процедуры. щас лог стряпать буду. может видно станет ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 08:25 |
|
VB.net keyboard hook зависает
|
|||
---|---|---|---|
#18+
surbanec, Зависаний не замечено, также сначала SetWindowsHookEx возвращал 0, потом нашёл на одном из сайтов этот класс, с указанием отключить хост процесс Visual Studio. Можно было бы кстати указать это. В лог нужно писать, как уже сказали ранее, время и метод когда начинает работу и когда заканчивает. Для своего проекта у меня есть аналогичный по функциональности класс, попробуй его. HotKeyClass.vb Код: vbnet 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. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
Объявляем переменную Код: vbnet 1.
Создаём экземпляр и регистрируем клавиши Код: vbnet 1. 2.
Обрабатываем событие Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 09:53 |
|
|
start [/forum/topic.php?fid=20&fpage=84&tid=1401488]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 379ms |
total: | 507ms |
0 / 0 |