|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
У меня есть код: Код: c# 1. 2. 3. 4. 5. 6.
У меня приложение WinForms, оно должно посылать символ А активному в данный момент окну (например, если открыт Блокнот, то в блокноте должна печататься "А"). Как(на что) мне заменить MainWindowHandle, чтобы символ А отправлялся в открытый и активный блокнот(или любое другое приложение, не указывая имя процесса)? (А то сейчас символ А отправляется в мое WinForms приложение). Как получить хендл активного окна? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2013, 13:54 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
GetForegroundWindow ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2013, 14:22 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
AntonariyGetForegroundWindow Спасибо - то что нужно. Сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2013, 14:32 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
А Process processes = Process.GetCurrentProcess(); для чего оставил? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2013, 14:34 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
AntonariyА Process processes = Process.GetCurrentProcess(); для чего оставил? Торопился - забыл убрать. Конечно без него обойдусь. Спс. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2013, 15:00 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
Чтоб не создавать новой темы - напишу здесь вопрос: Есть функция PostMessage. Так вот два примера: Код: c# 1. 2.
Почему второй PostMessage не работает? ЗЫ: SendKeys - не предлагать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 13:19 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
wvetal, WM_SETTEXT Только при использовании непосредственно хэндла окна это будет работать только в окнах, у которых непосредственный потомок от top-level window является edit control (как в случае с notepad, например). Если требуется послать текст в сфокусированный контрол более сложного окна, то, соответственно, придется действовать сложнее (см. тут ). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 16:44 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
Нашел библиотеку для эмуляции нажатия клавиш - InputSimulator.dll ( Вот ) Но она не во все окна(приложения) передает "нажатия клавиш". (В Блокнот передает) Например, у меня есть приложение, написанное на Direct3D (оно реагирует на нажатие клавиатуры даже если окно не активно), но ни библиотека InputSimulator.dll, ни SendKeys не передает туда (в это приложение) "нажатия клавиш". Вопрос: Можно ли программно эмулировать нажатие клавиатуры НЕ привязываясь к хендлам (или контролам) окон? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 13:22 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
wvetalНашел библиотеку для эмуляции нажатия клавиш - InputSimulator.dll ( Вот ) Но она не во все окна(приложения) передает "нажатия клавиш". (В Блокнот передает) Например, у меня есть приложение, написанное на Direct3D (оно реагирует на нажатие клавиатуры даже если окно не активно), но ни библиотека InputSimulator.dll, ни SendKeys не передает туда (в это приложение) "нажатия клавиш". Вопрос: Можно ли программно эмулировать нажатие клавиатуры НЕ привязываясь к хендлам (или контролам) окон?DirectX потому и direct, что весь ввод-вывод происходит мимо winforms. Для отправки нажатий в DicrectX-приложение нужно использовать DirectInput. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 13:39 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
То есть не мимо winforms, а мимо gdi. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 13:40 |
|
Получить хендл активного окна.
|
|||
---|---|---|---|
#18+
Подскажите, на правильном ли я пути (для эмулирования нажатия клавиши). Значит использую теперь DirectInput. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Теперь, поправьте, правильно ли я рассуждаю: мне нужно каким-то образом записать в буфер клавиатуры код той клавиши, которую я хочу эмулировать? Правильно? Какой метод(функцию) для этого можно(нужно) использовать? Или я не в том направлении рою? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2013, 12:31 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1405350]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 177ms |
0 / 0 |