|
|
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
Коллеги, кто сталкивался, прошу подсказать в какую сторону копать. нужно 1. перехватывать текст, набираемый юзером в любом окне. 2. иметь возможность вставлять текст туда, где он это делает. Ну по-сути пунтоСвитчер. Насколько помню Рихтера (я много лет как с С++ ушел в .net) первое делается хуками, а вот второе - даже примерно пока не понимаю. Вопрос в том, как это делается (куда копать), и принципиально ли использовать С++, или можно C# (не охота делать связку, взять уж что-то одно). Целевая платформа: windows 7-8-10. Смущает низкоуровневость хуков, какие тут могут быть проблемы в той же 10-ке (с правами, API и пр.). Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 17:49 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
автори принципиально ли использовать С++, или можно C# Можно использовать практически любой .NET язык и все старые нативные среды разработки. MS VC, VB6, Delphi, авторкакие тут могут быть проблемы в той же 10-ке при запуске от админа никаких ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 17:59 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
Eolt, ну а как тот же PuntoSwitcher работает? Или он требует админских прав? Как у юзеров в офисах (очевидно, без этих прав) он работает тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 18:00 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
TopSpaceEolt, ну а как тот же PuntoSwitcher работает? А я откуда знаю. Возможно он ставит службу, которая хучит клаву и мышку, и посылает сообщения клиенту PuntoSwitcher. Вариантов масса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 18:11 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
Eolt, ну вот про это как раз вопрос, каким путем лучше изначально пойти, чтобы получить наиболее стабильный и рабочий вариант. Служба - т.е. windows service? А есть мысли как делать обратную процедуру - вставлять текст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 18:14 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
TopSpace, По пункту 2. у меня есть проект с такой реализацией: в буфер копируется необходимый текст, и эмулируется нажатие Ctrl+V, текст вставляется в текстовый редактор/форму. В данной связки проблем не возникало, и как решение может быть использовано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 18:33 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
TopSpace2. иметь возможность вставлять текст туда, где он это делает.Слать оконное сообщение WM_CHAR? Вызывать WinAPI-шную функцию SendInput? Сам такими вещами не занимался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 00:14 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
VSVLAD, буду благодарен за сниппет. Кстати, вот тут: https://habrahabr.ru/post/241656/ чел говорит, что есть проблемы с хуками в скайпе, но ему никто там не смог ответить почему. Есть мысли? Почему в принципе может не работать хук/вставка текста (кроме прав доступа, что решается, как я понял, использованием сервиса)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 03:48 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
TopSpaceКоллеги, кто сталкивался, прошу подсказать в какую сторону копать. нужно 1. перехватывать текст, набираемый юзером в любом окне. 2. иметь возможность вставлять текст туда, где он это делает. Ну по-сути пунтоСвитчер. Насколько помню Рихтера (я много лет как с С++ ушел в .net) первое делается хуками, а вот второе - даже примерно пока не понимаю. Первое хуками, второе просто отправка сообщения SendMessage()/PostMessage(), только надо знать хэндл куда слать. Думаю надо С/С++ вспоминать. Если не путаю, хук вешается на сообщение (указывается какую функцию из DLL запустить), по приходу сообщения DLL загружается в процесс-получатель сообщения и функция вызывается. Читай про SetWindowsHookEx(). Можно ли это сделать на .Net - не знаю. Перечитай Рихтера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 06:48 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
EoltTopSpaceEolt, ну а как тот же PuntoSwitcher работает? А я откуда знаю. Возможно он ставит службу, которая хучит клаву и мышку, и посылает сообщения клиенту PuntoSwitcher. Вариантов масса. Нет, она просто хучит только приложения данного пользователя, а для этого никаких админских прав ненужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 09:12 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
TopSpace, Язык однозначно С или С++. На .net это делать... ну, можно, наверное, но нерационально -- всё же нужно думать о компактности бинарного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 09:15 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
MasterZivНа .net это делать. http://www.sql.ru/forum/958071/globalnyy-huk-na-c ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 09:56 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! Перехватом клавиш работает, вот здесь хороший код есть: https://github.com/kurumpa/dotSwitcher Осталось прогнать под разные версии ОС и права доступа. Странно, что даже навороченный PuntoSwitcher (уж сколько его пилят) в ряде случаев не работает. Задача вроде бы не сильно сложная, но 100% рабочего решения пока не вижу. И это все только винда, а как, интересно, сделать под другие платформы? (на том жу Qt) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2016, 01:45 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
вроде как PuntoSwitcher работал на простом перехвате клавы и имитации нажатия на кнопки. всегда не любил работать на тех компах, где стоит эта программа :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2016, 09:50 |
|
||
|
Выбор способа (и языка) для чего-то подобного PuntoSwitcher
|
|||
|---|---|---|---|
|
#18+
Roman Mejtesвроде как PuntoSwitcher работал на простом перехвате клавы и имитации нажатия на кнопки. всегда не любил работать на тех компах, где стоит эта программа :) Ты просто ей пользоваться не умеешь :) Надо ей запретить самостоятельно переключаться, тогда становится удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2016, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39232931&tid=1340720]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 447ms |

| 0 / 0 |
