Вопрос: Проблема с перехватом | Добавлено: 11.09.02 16:22 |
Автор вопроса: ![]() |
Ситуация следующая: написана прграмма сидящая в трее. Пользователь пишет текст, например в Блокноте, принажатии на определенную кнопку клавы, скажет запятую, в Блокнот должен передаваться определенный текст (символ). Пробовал и перехватывать эту кнопулю и делать через хоткей, но чтото оно никак не пашет. Может у кого есть мысли как это реализовать. Заранее благодарен. |
Ответы | Всего ответов: 18 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #1 | Добавлено: 11.09.02 16:26 |
А чем перечватываешь? PeekMesage? С хендлами из GetForegroundWindow? Я вот с этоим же парюсь. пока не получается... |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #2 | Добавлено: 11.09.02 16:30 |
Вот в том то и проблема, что не получается. Если это все сидит по отдельности, когда программуля активна, то все пашет, но вот как это все собрать и к тому же повесить на определенное нажатие? Если мысля появится может мыльнешь? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #3 | Добавлено: 11.09.02 16:39 |
Подожди... Как это, когда активна то все пашет? У меня она в любом случае никакич нажатий не ловит... На определенное нажатие то как раз просто, в PeekMesage надо константами указывать диапазон месаг которые ловишь. |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #4 | Добавлено: 11.09.02 16:50 |
Блин, неправильно сформулировал. Я имел ввиду что можно и кнопку поймать, и текст передать, только это все по отдельности пашет, отдельно ловит и отдельно вставляет. А вот совместить приятное с полезным никак не получается. На самом деле ситуация до бональности простая. Нужно чтоб на цифровой клаве в любой раскладке на Del была точка. Знаю что это решается заменой dll в 2k, XP и kbd в мастдайке. Но дело в том что если 2k, XP не разработческая, то она свои dll взад возвращает, и мастдайка при критическом выходе тоже самое делает. А все проги для клавы, что есть, не катят... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #5 | Добавлено: 11.09.02 17:04 |
Кинь своы код плиз. У меня никак не ловит. Интересно как ты сделал. А чтоб она библиотеки взад не возвращала их нужно сначала в DllCash запихать. |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #6 | Добавлено: 11.09.02 17:15 |
Ок, с делами разгребусь и кину... Есть еще вопрос: имею хоткей HK_DECIMAL. Что можно на него повесить чтоб пересылать текст в другую прогу? Напиши если не сложно. А то после 4-ех лет незанятия VB вспомнить тяжело уже... Всякие там DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0) вешаются без проблем...но это на фиг не надо... |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8370005 Вопросов: 34 Ответов: 466 |
Профиль | Цитата | #7 | Добавлено: 11.09.02 17:38 |
Парни вам надо использовать GetdlgItem!!! И тыды всё похать будет за милую душу!!! Помойму так пишется эта ф-я![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #8 | Добавлено: 11.09.02 18:04 |
Насколько я понимаю эта штука устанавливает заголовок или текст элемента управления. И посылает этому элементу WM_SETTEXT...или я вообще ничего не понимаю... Мне надо просто поставить какойто текст в прогу, у которой я зна. только хэндл и имя окна...а вот идентификатора элемента управления у миню нэт |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #9 | Добавлено: 11.09.02 19:01 |
Именно. По инфе эта ф-я получает текст диалогового окна по его идентификатору. Это может бытэ решением согласен, НО, теперь другая проблема : как получитш идентификатор зная только хендл другого окна? Я вот копаюсь но пока ничего такого не нашел... |
Номер ответа: 10 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #10 | Добавлено: 12.09.02 11:27 |
Идея по своей сущности хорошая...вот тоже копаюсь.. MAGNUS если накопаешь что свистни |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #11 | Добавлено: 12.09.02 12:47 |
Ok! Если накопаю свистну! Но дело то вот в чем: Я почему просил тебя код кинуть, потому что все по той же инфе, ф-и которые я использую PeekMessage,SendMessage,PostMessage, могут работать тол-ко с окнами из того же процесса! ИМХО потому у меня и не работает нифиг, думал у тебя какоы другой способ.. |
Номер ответа: 12 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #12 | Добавлено: 12.09.02 14:49 |
Покопавшись и почитав литературку понял, что в дельфях это сделать НАМНОГО проще например, так и не нашел, как определить и поменять раскладку именно активного окна помимо GetKeyboardLayout и ActivateKeyboardLayout... |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8370005 Вопросов: 34 Ответов: 466 |
Профиль | Цитата | #13 | Добавлено: 12.09.02 15:48 |
Народ Вы чё вазе первый день за компом!!! Простым перебором перебрать окна с опесателем ТЕКСТ и установить на них прослушку |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #14 | Добавлено: 12.09.02 15:56 |
JEDI ! Ты вроде как не следишь за нитью разговора. Я ж говорю, окно есть, но прослушка на него не работает, с описанными средствами, если знаешь другие, кинь. А перебирать контроли так же как окна в любом случае не выйдет, они не являются Child Window. Или мы друг друга не понимаем. |
Номер ответа: 15 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #15 | Добавлено: 12.09.02 17:37 |
MAGNUS прав. Простым перебором по имени получим кучу хэндлов. Так а если не потоковое окно, то как к нему обращаться? Хотя процентов на 35 у меня получилось по хоткею кидать символ в блокнот, но только один раз |
|