Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать так, чтобы Windows не меняла активное окно и фокус ввода?

Filowie Просветленный (37544), закрыт 14 лет назад
То есть чтобы, если я не щелкаю по окну мышкой, оно не становилось ни с того ни с сего активным.

(Прсото бесит, когда я в Квип ввожу текст (я при этом смотрю на клавиатуру), а Windows переключает фокус ввода (причины меня не интересуют), и получается, что я уже не ввожу текст в Квип, и об этом узнаю тока когда "ввел" все до конца )))

Если нужно будет самому написать прогу для этого - не проблема, если известно, чего конкретно прога должна делать...
Лучший ответ
Romik Гуру (4163) 14 лет назад
создать список программ (окон ) с которых нельзя уходить,
после этого перехватываем ф-цию SetFocus и если она идет не от мышки
тогда отвергаем,
правда с настройкой ее поигратся надо не по детски
FilowieПросветленный (37544) 14 лет назад
Спасибо..)) а можно поподробнее, особенно про то, как перехватывать SetFocus... и где будут данные, от мышки пришло сообщение или нет?
Romik Гуру (4163) >как перехватывать SetFocus смотри в сторону хук апи (hook api) >где будут данные, от мышки пришло сообщение или нет? а вот с этим посложнее , игратся надо эксперементировать
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (425086) 14 лет назад
Конкретно твоя прога должна получить Handle на активное окно и постоянно посылать его наверх через WinAPI. При нажатии на мышь (для перехвата событий мыши тебе придется еще и весьма специальный DLL накатать) программа должна сделать паузу, скушать твикс и получить новый хендл на новое активное окно, иначе ты из своего окошка вообще никогда не выйдешь.
Легче всего написать это на C++, но можно и на Delphi. Все функции WinAPI есть в MSDNе. Дерзай.
FilowieПросветленный (37544) 14 лет назад
Вообще реально, конечно, жаль только, что нужно постоянно делать онкно активным. А при нажатии на мышь... Я постоянно ведь на нее нажимаю ))) система будет сильно тормозить из-а этого, или нет?

Прога будет на Ассемблере (т,к. на C++ / Делфи я прсото не умею, и не надо) ,но все равно бювсе будет жутко тормозныым
Jurijus ZaksasИскусственный Интеллект (425086) 14 лет назад
Поставь своему процессу приоритет низкий... Введи задержку миллисекунд на 100 - это гигантское время для процессора, он успеет все, что ему надо.
Респект и уважуха ассемблерным программерам.
Filowie Просветленный (37544) Спасибо, попробую..))
Похожие вопросы