Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перехват сообщений в чужой программе

301
06 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Мне хочется узнать, когда в edit'е чужой программы меняется содержимое. А как? Я незнаю...

PS В эдите не пароль, а адрес сайта. Меня бесит там набирать цццюнфюкг вместо ya.ru. Вот.
243
07 декабря 2004 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by lord Kelvin
Меня бесит там набирать цццюнфюкг вместо ya.ru. Вот.


Можно попробовать сделать проще, дольше, но универсальнее - пройти клавиатурный тренажер (например Соло). Быстро не получится, зато на все случаи жизни.
А иначе это только лечение следствия, а не причины.

301
07 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by pacific_7

Можно попробовать сделать проще, дольше, но универсальнее - пройти клавиатурный тренажер (например Соло). Быстро не получится, зато на все случаи жизни.
А иначе это только лечение следствия, а не причины.


Я на семьдесят каком-то Solo7 застрял...=)
Тем более знания никогда небудут лишними.

259
07 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by lord Kelvin

Я на семьдесят каком-то Solo7 застрял...=)
Тем более знания никогда небудут лишними.



Можно попробовать так. Определяешь процесс, в котором едит (хотя как это сделать в винде я представляю слабо.). Перехватываешь событие EditURL::OnEnter или EditURL::OnKeyPress и меняешь рашен буквы на буржуйские. Это на вскидку. Глубоко не копал. В никсах это вожможно. Проверял.

301
07 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by AlexandrVSmirno


Можно попробовать так. Определяешь процесс, в котором едит (хотя как это сделать в винде я представляю слабо.). Перехватываешь событие EditURL::OnEnter или EditURL::OnKeyPress и меняешь рашен буквы на буржуйские. Это на вскидку. Глубоко не копал. В никсах это вожможно. Проверял.


Я рад, что под никсами это все пашет. Честно. И мне самому приходило в голову отловить сообщение WM_SETFOCUS к эдиту... Но как? Вот, что я спрашиваю.

259
07 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by lord Kelvin

Я рад, что под никсами это все пашет. Честно. И мне самому приходило в голову отловить сообщение WM_SETFOCUS к эдиту... Но как? Вот, что я спрашиваю.



Я сдесь в win32 help-е покапался и вот че нарыл, может поможет:
Thread Walking
A snapshot that includes the thread list contains information about each thread of each currently executing process. You can retrieve information for the first thread in the list by using the Thread32First function. After retrieving the first thread in the list, you can retrieve information for subsequent threads by using the Thread32Next function. Thread32First and Thread32Next fill a THREADENTRY32 structure with information about individual threads in the snapshot.
The AttachThreadInput function attaches the input processing mechanism of one thread to that of another thread.

BOOL AttachThreadInput(

DWORD idAttach, // thread to attach
DWORD idAttachTo, // thread to attach to
BOOL fAttach // attach or detach
);


Parameters

idAttach

Specifies the identifier of the thread to be attached to another thread. The thread to be attached cannot be a system thread.

idAttachTo

Specifies the identifier of the thread to be attached to. This thread cannot be a system thread.
A thread cannot attach to itself. Therefore, idAttachTo cannot equal idAttach.

fAttach

Specifies whether to attach or detach the threads. If this parameter is TRUE, the two threads are attached. If the parameter is FALSE, the threads are detached.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. There is no extended error information available.

Remarks

Windows created in different threads typically process input independently of each other. That is, they have their own input states (focus, active, capture windows, key state, queue status, and so on), and they are not synchronized with the input processing of other threads. By using the AttachThreadInput function, a thread can attach its input processing to another thread. This also allows threads to share their input states, so they can call the SetFocus function to set the keyboard focus to a window of a different thread. This also allows threads to get key-state information. These capabilities are not generally possible.

The AttachThreadInput function fails if either of the specified threads does not have a message queue. The system creates a thread's message queue when the thread makes its first call to one of the Win32 USER or GDI functions. The AttachThreadInput function also fails if a journal record hook is installed. Journal record hooks attach all input queues together.
Note that key state, which can be ascertained by calls to the GetKeyState or GetKeyboardState function, is reset after a call to AttachThreadInput.

Windows NT: You cannot attach a thread to a thread in another desktop.

You can enumerate the threads of a specific process by taking a snapshot that includes the threads and then by traversing the thread list, keeping information about the threads that have the same process identifier as the specified process.
You can retrieve an extended error status code for Thread32First and Thread32Next by using the GetLastError function.

Извини что по аглицки.

10
07 декабря 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by lord Kelvin
Я на семьдесят каком-то Solo7 застрял...=)
Тем более знания никогда небудут лишними.


К слову сказать, Соло тут совершенно не причем. Она учит слепому набору, а не автоматическому переключению раскладок...

А если стоит более двух раскладок?..

243
08 декабря 2004 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by smartsoft

К слову сказать, Соло тут совершенно не причем. Она учит слепому набору, а не автоматическому переключению раскладок...

А если стоит более двух раскладок?..


Какая разница сколько стоит раскладок? Если набираеш текст и смотришь на монитор, а не на клавиатуру, то никогда не наберешь "цццюнфюкг" вместо "www.ya.ru"!
Да и раскладки переключаются по прошествии некоторого времени (и приобретения опыта) действительно автоматически.

301
08 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by pacific_7

Какая разница сколько стоит раскладок? Если набираеш текст и смотришь на монитор, а не на клавиатуру, то никогда не наберешь "цццюнфюкг" вместо "www.ya.ru"!
Да и раскладки переключаются по прошествии некоторого времени (и приобретения опыта) действительно автоматически.


Это оффтоп. Форум о программировании.

259
08 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by lord Kelvin

Это оффтоп. Форум о программировании.



Согласен!!! Сама по себе задачка интересная. И не чего флуд про раскладки клавы разводить. Дело ведь не вводе с клавы, а в принципе. Как можно контролировать ввод другой конкретной проги. Я вот уже второй день рою, пока не очень получается.
з.ы.
И всеже глянь еще раз хелп по win32. Такое ощущение, что там надо копать (см. мое пред. сообщение)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог