Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

активировать предыдущий контрол в системе, послать ему клавиши   Найти похожие ветки 

 
Eugene_Jek_Efimochkin   (2002-05-10 23:31) [0]

Люди, спасите ламера! Нужно реализовать сабж. То есть вот как:
юзерь жмет в моей проге на кнопку, после чего нужно вернуть управление предыдущему в системе (т.е. скорее всего от другой программы) элементу управления. После этого нужно ещё послать ему определённую последовательность нажатия клавиш (ну это я ещё может сам найду). Помогите, пожалуйста!


 
Cobalt   (2002-05-11 13:56) [1]

Поподробнее о том, что тебе надо сделать, а то непонятно.
Опиши, что происходит до, что (как ты думашь) происходит в твоей проге, что - после. Тогда, может, и сам разберёшся...

P.S. Ламер - чел., который считает себя умным (на самом деле нет) и не принимает ничьих советов(типа, почитай книжку, поищи в Хелпе/ФАКе на тему "АБВ").

Чайник - человек, начинающий чем-то интересоваться, имеющий очень мало знаний( в отличие от ламера, не обладает его отрицателными чертами).


 
Eugene_Jek_Efimochkin   (2002-05-13 23:54) [2]

Спасибо за внимание к моей скромной персоне.
Итак, смысел моей проги в том, что она вводит за пользователя некие сочетания клавиш в некие эдиты, мемо (итд итп) ЧУЖИХ программ. Прога висит "вечно наверху" (Always on top), в ней неск-ко кнопок на форме. Юзерь (Я), добравшись до нужной формы в ЧУЖОЙ программе, активирует в ней соотв. эдит и жмёт кнопку на моей проге. Прога, естесно, получает фокус, так что через Screen.ActiveControl мне тот эдит уже не найти. Вот в этом то и проблема - обнаружить, какой контрол на всём экране был предыдущим активным, вернуть ему управление, и переслать в него нажатия клавиш (последнее у меня уже есть, но не откажусь от чего-нибудь ещё на эту же тему).

Знаете, я уж подумал: может оффтоп? Надо повнимательнее Screen поизучать? В общем, если есть хоть какие-то решения - не только API - всё приму, заранее большое спасибо всем откликнувшимся.

Уважаемые читатели этой ветки! Не пытайтесь, пожалуйста, предлагать мне загрузить ту или иную готовую программу, которая "выполняет примерно те же функции". Мне интересно написать самому, кроме того, предложеная схема действий программы - лишь идея, не облаченная пока вообще ни в какой интерфейс. На самом деле программа будет уметь гораздо большее, отдельные утилиты мне мало пригодятся.
---------------------------------------------------------------
По поводу ламера и чайника - ну здесь граница зыбкая, понятия точно нигде не определены. Почитайте, например, г-на Голубицкого, что авторствует в Ктерре - он-то себя ламером называет, однако же предлагая читателям помочь ему советами в поиске того или иного софта. Так что толкования подобных терминов "новояза" зависят от среды общения, спорить об этом мало проку, пусть этим в Министерстве образования занимаются и в Академии Наук.


 
MBo   (2002-05-14 06:59) [3]

Раз программа сама меняет контролы, в которые она пишет, пусть в этот момент и запоминает тот, на который перешла


 
Cobalt   (2002-05-14 08:16) [4]

Делать это (MBo © (14.05.02 06:59))
можно приблизительно следующим образом:
1) мониторинг запущенных программ. (Выбрать, за какими следить)
2) Хук на события - обрабатываешь события WM_KillFocus/WM_SETFOCUS, где-нить запоминаешь
3) то что ваша форма Always on top, вовсе не значит, что в другие окна не могут иметь фокуса(пример - WinAmp)

Т.о что -то вроде списка прог и ID активных контролов


 
Anatoly Podgoretsky   (2002-05-14 08:52) [5]

Тебе это не аоможет?
The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus.

WM_SETFOCUS
hwndLoseFocus = (HWND) wParam; // handle of window losing focus


Parameters

hwndLoseFocus

Value of wParam. Identifies the window that has lost the keyboard focus (may be NULL).


 
Raptor   (2002-05-14 12:44) [6]

Подкину такую идею. При нажатии кнопки в своем приложении активизируешь то окно, которое было до этого активно (окно это находишь с помощью совета Anatoly Podgoretsky) и находишь на нем активный контрол. Это и будет тот контрол, который был активным до передачи фокуса окну твоего приложения.


 
Eugene_Jek_Efimochkin   (2002-05-14 23:49) [7]

Народ, а если просто по z-порядку найти и активировать прошлое окно, не поможет?



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
14-47773
Erlan
2002-06-13 09:33
2002.07.15
Беда просто.


1-47427
Barmaglot
2002-07-03 09:59
2002.07.15
...Забыл алгоритм взаимодействия ComboBox и Edit ...


1-47259
Stelius
2002-06-28 00:35
2002.07.15
Вопрос по CONSTRUCTOR у


14-47720
Esu
2002-06-06 11:35
2002.07.15
Какая на ваш взгляд лучшая клавиатура ?


1-47313
SDv-503
2002-07-01 00:17
2002.07.15
Как программно нажать на .... (+)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский