Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Проблема с записью файлов |
Автор: Mark4545 21.7.2007, 17:36 | ||||
Код keyboard proc хука WH_KEYBOARD
не записывает в файл почему я не смогу понять, надесюь на вашу помошь. Результат гет ласт еррор 6 ( ERROR_INVALID_HANDLE) почему он инвалид не понятно. Заранее спс Да и забыл креате файл происходит в длл процесс аттач вот так
Добавлено через 5 минут и 41 секунду HANDLE HFile обьявлен глобальной переменой |
Автор: Mark4545 21.7.2007, 19:43 |
Такое ощушение тока 586 смотрит форум и отвечатет). Пока мало понятно но буду ждать полного ответа. |
Автор: 586 21.7.2007, 23:03 | ||
Заметил, что после отмены хука dll'шки из процессов, окна которых свёрнуты, выгружаются не сразу. Если переключиться на это приложение, dll'шка выгружается. Так должно быть, или у меня ошибка к коде? |
Автор: Mark4545 21.7.2007, 23:21 | ||
ща уже не в состоянии осилит код , завтра днем со свежей головой посмотрю. Но могу сказать что когда я использовал
При переключении из одного окна в другое в лог переставало писать . При использовании простого мессадж бокса при переключении перехватывает клавиши нормально. |
Автор: Mark4545 23.7.2007, 12:11 |
так что никто не знает в чем проблема. |
Автор: Mark4545 23.7.2007, 15:47 |
спс 2 586 о5 помог. Сурс пашет щас буду разбирать подробно.) Возможно еще вопросы появяться) |
Автор: 586 23.7.2007, 16:56 | ||
|
Автор: Mark4545 23.7.2007, 18:02 |
еще один сенкс то 586.Разбираю щас первый вариант кода, но никак не могу понять зачем же дублировать хэндлы?. Какнить попроще если не трудно обьясните. |
Автор: 586 23.7.2007, 19:23 |
Потому что в других процессах они не действительны. Правда, если у процесса в который внедрен хук мало привелегий, он не сможет дублировать хендл. Можно использовать второй пример, т.е. открывать и закрывать файл каждый раз после нажатия клавиши. На производительность это повлияет. Но второй пример надежнее и легче реализовывается. |
Автор: Mark4545 23.7.2007, 19:48 | ||
это я заметил что второй код полегче. Ну значит основываясь на втором коде 586 начал писать библиотеку Написал:
Мистика не работает( при том что код 586 работает отлично) В чем проблема скока думал так и не нашел.Вроде фактически почти тоже самое. И вопрос №2 Конечно если я не надоел. В моем понимании Dll при глобальном хуке грузиться ко всем процессам, и каждая копия принадлежит к тому процесу к которому подгружена. Меня интересует поведение переменых которые находяться в Shared секции Dll. (и если у кого есть линк на подробные описания и работы с Shared секцией Dll пока сам искал подробных документов с маленькими примерчиками не попадались) Спс за внимание. |
Автор: 586 23.7.2007, 20:06 |
Пиши полный путь!!! Рабочие папки у процессов разные. |
Автор: Mark4545 23.7.2007, 20:35 |
Да уж понял ошибку. А как насчет 2го вопроса. |
Автор: 586 23.7.2007, 22:15 |
поиск по словам "shared memory" или "shared section rws" http://www.wasm.ru/article.php?article=1005015 (читай после "Несколько комментариев от assembler.ru") |
Автор: Mark4545 23.7.2007, 22:18 |
Ассемблер мне тут не сильно поможет нужна дока на С каянить. |
Автор: 586 23.7.2007, 22:49 |
там ассемблер не обязательно знать. Говорю, читай после слов "Несколько комментариев от assembler.ru", и вообще поиск рулит |
Автор: Mark4545 23.7.2007, 22:56 |
так читал, после этих слов). Поиск юзал нашел пару статей но слишком громоздкие. Уважаемый 586 не могли бы вы своим языком о шаред секции расзказать |
Автор: 586 23.7.2007, 23:12 |
короче, там написано, что 1. Переменные в такой секции инициализируются только один раз. 2. Shared-Секции в двух одинаковых приложениях исп. модулях, запущенных из разных папок или под разными именами будут независимые друг от друга. 3. Данные в секции располагаются по одному физическому адресу, т.е. система их ни куда не копирует. остальное в поиск. удачи ![]() Добавлено @ 23:14 google.ru |
Автор: Mark4545 23.7.2007, 23:16 |
В гугл ссылки уже на первых 2ух страницах фиолетовые).Меня больше интересует использование Шаред секции на какомнить легом математическом примере. Добавлено через 8 минут и 33 секунды Хех нашел у себя на компе ответ на свои вопросы в книге Рихтера. ЗЫ. 586 будет 100 постов репутацию подниму))). Спс те. Тему можно закрывать. |