Конференция "Прочее" » Сокрытие курсора с экрана
 
  • Добежал (19.01.09 14:22) [0]
    Как грамотно реализовать такой функционал:

    есть GUI приложение, развернутое на весь экран. Внутри GUI-приложения растянутый на всю площадь приложения TWebBrowser. Нужно, если мышка не двигалась в течении пары секунд - скрывать курсор с экрана. При этом, чтобы курсор не появлялся на экране, если перемещение мышки происходит мгновенно (а точнее, используются клики по сенсорному дисплею) и появлялся, когда начинают водить реальной мышкой.

    Может, кто делал такое?
  • KSergey © (19.01.09 14:32) [1]
    > Добежал   (19.01.09 14:22)  
    > При этом, чтобы курсор не появлялся
    > на экране, если перемещение мышки происходит мгновенно (а
    > точнее, используются клики по сенсорному дисплею) и появлялся,
    >  когда начинают водить реальной мышкой.

    А я медленно поведу пальцем по сенсорному экрану - и обману алгоритм :)

    Может можно как-то отличать тип "мышки", от которой пришел клик?
  • Добежал (19.01.09 14:56) [2]

    > А я медленно поведу пальцем по сенсорному экрану - и обману
    > алгоритм :)


    а вот тут не знаю... По-моему, сенсорные экраны клико-ориентированные. Если ты начнешь медленно водить пальцем по тачскрину - он это воспримет как ошибку... Или это зависит от настроек драйверов... Блин, сам не знаю данный вопрос.


    > Может можно как-то отличать тип "мышки", от которой пришел
    > клик?


    можно и так. Один вопрос - как? ))
  • ketmar © (19.01.09 14:56) [3]
    грамотно будет отрубить нафиг «реальную» мышь.

    ---
    All Your Base Are Belong to Us
  • vuk © (19.01.09 14:59) [4]
    Э... А зачем совмещать сенсорный экран и мышь?
  • vuk © (19.01.09 15:02) [5]
    Сенсорные экраны нормально эмулируют мышь, и клики и перемещение.
  • БарЛог © (19.01.09 15:20) [6]
    левой рукой по тачскрину двигаешь влево, правой рукой мышку двигаешь вправо. смотреть, кто "победит" :)

    а зачем курсор скрывать?
  • Добежал (19.01.09 15:31) [7]
    мне нужно скрыть курсор, чтобы он не маячил на экране, так как не нужен. Но если подойдет настройщик, подключит мышь - то чтобы мог ей двигать и ее было видно. Вот так в идеале.

    Если попроще, то задача сводится к тому, чтобы управлять видимостью курсора в TWebBrowser в зависимости от флагов, с которыми запущена программа.

    Если совсем уж просто - чтобы уметь отключать глобально для системы видимость курсора. Но это я наверное сейчас найду как сделать в поисковике... Главное, чтобы при даже аварийном завершении потом в системе видимость курсора восстанавливалась.
  • test (19.01.09 15:38) [8]
    Добежал   (19.01.09 15:31) [7]
    А мышь зачем админу в Кваку на нем играть что ли?
  • Добежал (19.01.09 15:48) [9]
    чтобы настраивать удобнее было блин.
  • ketmar © (19.01.09 15:49) [10]
    >[7] Добежал (2009-01-19 15:31:00)
    >eсли подойдет настройщик, подключит мышь — то чтобы мог ей двигать и ее было видно.

    вот для этого делают «технологический доступ». кнопочка в труднодоступном месте с паролем — и вуаля! и курсор и прочие свистелки. поработал — техдоступ закрыл. easy as a cake.

    ---
    Do what thou wilt shall be the whole of the Law.
  • KSergey © (19.01.09 16:00) [11]
    > ketmar ©   (19.01.09 15:49) [10]
    > вот для этого делают «технологический доступ». кнопочка в труднодоступном месте с паролем

    прикинь пароль узнают.. а ведь текучка кадров наверняка не маленькая, и рулить на месте посылают наверняка студентов, как водится...
  • ketmar © (19.01.09 16:20) [12]
    >[11] KSergey © (2009-01-19 16:00:00)
    в оригинальной задаче у автора вообще никакого «доступа по паролю» нет — так что даже если узнают, то сведётся к оригинальной задаче, но с одной кнопочкой. пароль — это защита от малолетнего хацкирья, не более.

    ---
    All Your Base Are Belong to Us
  • ketmar © (19.01.09 16:21) [13]
    >[11] KSergey © (2009-01-19 16:00:00)
    проблемы секурности, как понимаешь, решаются совсем другими методами.

    ---
    Do what thou wilt shall be the whole of the Law.
  • Добежал (19.01.09 16:24) [14]
    ketmar ©   (19.01.09 16:21) [13]
    Ты дурак??
  • KSergey © (19.01.09 16:27) [15]
    Где же защитники всех униженных??!
  • ketmar © (19.01.09 16:51) [16]
    >[14] Добежал (2009-01-19 16:24:00)
    >Ты дурак??

    ищешь собрата по развитию?

    ---
    Do what thou wilt shall be the whole of the Law.
  • ketmar © (19.01.09 16:55) [17]
    (философски-отвлечённо) нифига в мире не течёт и не изменяется. вот не ходил, заглянул — а быдлошколия так и не уменьшилось. сами нифига не умеют, зато понтов полная жопа.

    ---
    Do what thou wilt shall be the whole of the Law.
  • Добежал (19.01.09 17:39) [18]
    Товарищи, никто не знает как решить проблему в результате? Повторю вопрос:

    мне нужно скрыть курсор, чтобы он не маячил на экране, так как не нужен. Но если подойдет настройщик, подключит мышь - то чтобы мог ей двигать и ее было видно. Вот так в идеале.

    Если попроще, то задача сводится к тому, чтобы управлять видимостью курсора в TWebBrowser в зависимости от флагов, с которыми запущена программа.

    Если совсем уж просто - чтобы уметь отключать глобально для системы видимость курсора. Но это я наверное сейчас найду как сделать в поисковике... Главное, чтобы при даже аварийном завершении потом в системе видимость курсора восстанавливалась.

    P.S. пост [14] писал не я, конечно. То есть, не автор темы.
  • KSergey © (19.01.09 17:44) [19]
    > Добежал   (19.01.09 17:39) [18]
    > Если попроще, то задача сводится к тому, чтобы управлять
    > видимостью курсора в TWebBrowser в зависимости от флагов,  с которыми запущена программа.

    Отлично, и какие траблы? Ну подумаешь аварийно завершится, техник ее запустит с праильным ключиком - и появится. Не  сумеет запустить без мыши? хотя, если нет клавы... хм.. Может это, клаву лучше подключать? :)

    > P.S. пост [14] писал не я, конечно. То есть, не автор темы.

    Не надо врать. Кто не врет - те регистрируются. И кто регистрируются - тот не врёт.
  • Добежал (19.01.09 17:44) [20]
    пока придумал только половинчатое решение по второму пункту.

    В шаблоны документов вводится JS-функция аля:

    document.body.style = "cursor:url
    ('images/blank.cur'), auto;"



    Соответственно, программа после каждой загрузки страницы или вызывает, или не вызывает данную функцию. Плохо тем, что:

    - разработчик шаблонов должен учитывать это и в каждую страницу не забывать вкладывать такую функцию, не очень удобно

    - не будет работать с отключенным JS в IE.

    Для идеальной картины нужно независимо от того, что в HTML документе уметь отключать курсор в TWebBrowser... Как это решить не придумал.

    Ну а самое идеальное решение задачи, это уметь отслеживать перемещение происходит с помощью тачскрина или с помощью обыкновенной мыши. Если с помощью мыши то показывать курсор на пару секунд.
  • Добежал (19.01.09 17:46) [21]

    > Отлично, и какие траблы?


    я не знаю способа скрывать / показывать курсор в TWebBrowser в динамике.


    > Ну подумаешь аварийно завершится, техник ее запустит с праильным
    > ключиком - и появится


    просто чем меньше знаний нужно технику для управления ПО - тем лучше.
  • Добежал (19.01.09 17:46) [22]

    > Не надо врать


    ну так и начни с себя, не ври о том, чего не знаешь.
  • ketmar © (19.01.09 18:03) [23]
    >[18] Добежал (2009-01-19 17:39:00)
    если уж *совсем* просто — тебе кто-то запрещает отлавливать подключение/отключение USB-мыши?

    ---
    Do what thou wilt shall be the whole of the Law.
  • Добежал (19.01.09 18:15) [24]

    > если уж *совсем* просто — тебе кто-то запрещает отлавливать
    > подключение/отключение USB-мыши?

    нехороший на мой взгляд способ. недостатки, которые придумал сразу:

    1) мыши бывают еще как минимум PS/2. А в принципе и COM еще есть.

    2) мышка может быть подключена допустим и засунута внутрь закрываемого бокса.

    P.S. Мне бы еще решить проблему помельче - как динамически скрывать курсор в TWebBrowser, независимо от кода загруженной страницы?
  • ketmar © (19.01.09 18:25) [25]
    >[24] Добежал (2009-01-19 18:15:00)
    >1) мыши бывают еще как минимум PS/2. А в принципе и COM еще есть.

    за подключение «на живую» PS/2 надо бить в бубен. за COM — просто тащить на выставку допотопных технологий (а что, ещё делают платы, куда *это* воткнуть можно? O_O). обе эти «проблемы» отлично решаются моей идеей с дополнительной кнопкой.

    >2) мышка может быть подключена допустим и засунута внутрь закрываемого бокса.
    запретить.

    >Мне бы еще решить проблему помельче — как динамически скрывать курсор в
    >TWebBrowser, независимо от кода загруженной страницы?

    например, направить ie через проксь, который к каждой странице дописывает css/js.

    ---
    Do what thou wilt shall be the whole of the Law.
  • Добежал (19.01.09 18:34) [26]
    Ясно.

    По сути, продолжаю поиск более красивых решений, чем предложил ketmar.
  • ketmar © (19.01.09 19:05) [27]
    >[26] Добежал (2009-01-19 18:34:00)
    да запросто. драйвер-фильтр, который различает мышь и тачскрин. красиво? угу. надо? нет.

    ---
    Understanding is not required. Only obedience.
  • Добежал (19.01.09 19:18) [28]
    я уверен, что есть еще решения кроме драйвера-фильтра.

    Еще продолжаю искать решение того, как скрыть курсор в TWebBrowser, независимо от текста загруженной страницы.
  • ketmar © (19.01.09 20:12) [29]
    >[28] Добежал (2009-01-19 19:18:00)
    >Еще продолжаю искать решение того, как скрыть курсор в TWebBrowser, независимо
    >от текста загруженной страницы.

    таки перестать его использовать и взять более мощную обёртку?

    ---
    All Your Base Are Belong to Us
  • [wl] (20.01.09 03:01) [30]
    это что, очередной автомат по приему платежей?
  • Добежал (20.01.09 11:55) [31]

    > таки перестать его использовать и взять более мощную обёртку?


    TEmbeddedWB? А как в нем сделать требуемое?
  • vuk © (20.01.09 12:09) [32]
    Я не понял, а что, ShowCursor(false) не работает?
  • Добежал (20.01.09 12:30) [33]

    > Я не понял, а что, ShowCursor(false) не работает?

    это глобально для системы, не хотелось бы. Иначе в случае аварийного завершения приложения я так понимаю курсор так и останется невидимым?

    Вот ShowCursor в общем подходит, но если бы возможно было его применение в рамках процесса.

    Можно еще значок курсора для формы изменить на пустое, но данные настройки не повиляют никак на отображение курсора над компонентом TWebBrowser...
  • vuk © (20.01.09 12:33) [34]
    to Добежал   (20.01.09 12:30) [33]:
    >это глобально для системы
    Вы проверяли? Судя по всему - нет. Это локально для приложения.
  • Добежал (20.01.09 12:42) [35]

    > Вы проверяли? Судя по всему - нет. Это локально для приложения

    снимаю шляпу! Действительно, ступил. Спасибо большое! Вопрос управления видимостью курсора решился.

    Теперь осталась программа-максимум: каким-то образом понимать, перемещение курсора из-за мышки реальной происходит или тачпада...
  • AndreyV © (20.01.09 12:51) [36]
    > [35] Добежал   (20.01.09 12:42)
    > Теперь осталась программа-максимум: каким-то образом понимать,
    > перемещение курсора из-за мышки реальной происходит или
    > тачпада...

    В развитие кнопки от ketmar.
    На сенсорном экране наверно нет имитации средней кнопки? Отлавливай нажатие на мышке, двойной клик колёсиком, например, включает/выключает.
  • vuk © (20.01.09 13:04) [37]
    На сенсорном экране и правой-то кнопки нету. Не говоря уже о средней. :)
  • KSergey © (20.01.09 13:19) [38]
    О, к стати колеса - тоже нету! можно прокручивание колеса отлавливать, это просто
  • AndreyV © (20.01.09 13:34) [39]
    > [37] vuk ©   (20.01.09 13:04)
    > На сенсорном экране и правой-то кнопки нету. Не говоря уже
    > о средней. :)


    > [38] KSergey ©   (20.01.09 13:19)
    > О, к стати колеса - тоже нету! можно прокручивание колеса
    > отлавливать, это просто

    Правая кнопка и прокрутка пригодятся при работе мышкой, а WM_MBUTTONDBLCLK вряд ли понадобится в приложении автора.

    Ещё экзотика: отстучать морзянкой слово "курсор" в определённом месте экрана.:) Но это могут и пользователи сделать.
  • KSergey © (20.01.09 13:58) [40]
    > AndreyV ©   (20.01.09 13:34) [39]
    > Ещё экзотика: отстучать морзянкой слово "курсор" в определённом  месте экрана.:)

    Ага, админамм проходить двухнедельные курсы со сдачей зачета :)
  • AndreyV © (20.01.09 14:07) [41]
    > [40] KSergey ©   (20.01.09 13:58)
    > Ага, админамм проходить двухнедельные курсы со сдачей зачета :)

    Админ должен уметь пользоваться бубном. Надо только ритм запомнить.:)
  • @!!ex © (20.01.09 15:04) [42]
    > [32] vuk ©   (20.01.09 12:09)
    > Я не понял, а что, ShowCursor(false) не работает?

    Я все ждал, когда же это предложат? :))


    > [35] Добежал   (20.01.09 12:42)

    Если за секунду более 50 перемещений(обычное перемещение мышки при медленном движении генерит десятка два сообщений, если быстро - больше сотни... я посмотрю на "хакера" кликающего на тачпад со скоростью 50 кликов в секунду в разных местах), значит мышка - врубаем. Если в течении 20 секунд не происходит движения - вырубаем.
    Если же тачскрин умеет ловить перемещение, то мышка обычная технарю нафиг не сплющилась.
  • KSergey © (20.01.09 15:40) [43]
    > AndreyV ©   (20.01.09 13:34) [39]
    > Правая кнопка и прокрутка пригодятся при работе мышкой

    Я же не предлагаю их "съедать". просто реагировать и пробрасывать далее. Впрочем, тут на усмотрение автора, интересные методы явно нашлись.
  • vuk © (20.01.09 16:02) [44]
    to @!!ex ©   (20.01.09 15:04) [42]:

    >Я все ждал, когда же это предложат? :))
    Я, собственно, тоже ждал. Потом надоело.
    Кстати, насколько я понял, иногда курсор все-таки появляется, хотя явно его видимым никто не делает. Приходится периодически его принудительно прятать.
  • ketmar © (20.01.09 16:32) [45]
    >[42] @!!ex © (2009-01-20 15:04:00)
    >Я все ждал, когда же это предложат? :))

    а аффтар упорно хотел именно средствами ie. он же не говорил, что по-другому тоже устраивает.

    ---
    Understanding is not required. Only obedience.
  • ketmar © (20.01.09 16:33) [46]
    >[44] vuk © (2009-01-20 16:02:00)
    >Кстати, насколько я понял, иногда курсор все-таки появляется, хотя явно его
    >видимым никто не делает.

    hijack-нуть API и не давать супостатам портить малину.

    ---
    Do what thou wilt shall be the whole of the Law.
  • Добежал (20.01.09 16:40) [47]

    > Я, собственно, тоже ждал. Потом надоело

    интересно, а на какой логике основано данное поведение - знать путь решения проблемы, но не говорить его, ждать пока другие его скажут?!


    > а аффтар упорно хотел именно средствами ie

    это неправда. Я нигде не говорил, что хочу именно средствами IE. Где я такое писал? Нигде, так что не надо фантазировать, пожалуйста.
  • vuk © (20.01.09 16:46) [48]
    Неохота мне туда лезть. :)
    Тем более, что кто выступает в качестве супостата совершенно неясно, т.к. вызовов ShowCursor в приложении и компонентах нет. Возможно, как-то неявно влияют изменения свойства Screen.Cursor в недрах генофонда...
  • ketmar © (20.01.09 17:08) [49]
    >[47] Добежал (2009-01-20 16:40:00)
    >> а аффтар упорно хотел именно средствами ie
    >это неправда.


    цитата:
    >[18] Добежал (2009-01-19 17:39:00)
    >Если попроще, то задача сводится к тому, чтобы управлять видимостью курсора в
    >TWebBrowser в зависимости от флагов, с которыми запущена программа.


    где тут что-то не про ie? я ждал уточнения задачи (потому что знаю: по первому посту обычно сложно понять, а через страницу-другую наконец выясняется, чего же хотел автор). ты уточнил — в ie. я тебе предложил вариант с прокси, например. я же не виноват, что ты изначально не можешь чётко сформулировать проблему.

    ---
    Understanding is not required. Only obedience.
  • vuk © (20.01.09 17:20) [50]
    to Добежал   (20.01.09 16:40) [47]:

    >интересно, а на какой логике основано данное поведение - знать
    >путь решения проблемы, но не говорить его, ждать пока другие
    >его скажут?!
    Собственно, была надежда, что автор вопроса таки найдет эту функцию самостоятельно. От самостоятельных поисков толку больше. На поиск нужно затратить всего-то пару минут.
  • ketmar © (20.01.09 17:43) [51]
    >[50] vuk © (2009-01-20 17:20:00)
    >Собственно, была надежда, что автор вопроса таки найдет эту функцию
    >самостоятельно.

    у меня — не было. %-)

    ---
    Understanding is not required. Only obedience.
  • vuk © (20.01.09 20:21) [52]
    Кстати. Я бы вообще для терминала веб-интерфейс не стал использовать. Потому, что делать "клики" пальцами по тачскрину неудобно, юзером ожидается ожидается реакция на касание, а получается реакция на "клик" (касание + отпускание).
  • @!!ex © (20.01.09 20:25) [53]
    > интересно, а на какой логике основано данное поведение -
    > знать путь решения проблемы, но не говорить его, ждать
    > пока другие его скажут?!

    В моем случае под "ждал" подразумевалось не ожидание, когда кто нибудь уже напишет в ветке, а чтение все ветки и ожидание что уже должен был кто-то из полустони отпостившихся вспомнить о существовании функции. vuk вспомнил.
  • Пробегал2.... (20.01.09 21:47) [54]
    vuk ©   (20.01.09 20:21) [52]
    Кстати. Я бы вообще для терминала веб-интерфейс не стал использовать


    я не нашел лучшего способа предоставить клиентам самим иметь возможность менять дизайн интерфейса.

    vuk ©   (20.01.09 20:21) [52]
    Потому, что делать "клики" пальцами по тачскрину неудобно, юзером ожидается ожидается реакция на касание, а получается реакция на "клик" (касание + отпускание).


    вообще не понял. Сколько людей не видел тыкающих в терминал всегда после касания человек убирает руку от экрана.
  • ketmar © (20.01.09 21:51) [55]
    >[54] Пробегал2…. (2009-01-20 21:47:00)
    >Сколько людей не видел тыкающих в терминал всегда после касания человек убирает
    >руку от экрана.

    а я нелюдь — я вот могу задуматься и завтыкать.

    ---
    All Your Base Are Belong to Us
  • vuk © (20.01.09 22:12) [56]
    >вообще не понял. Сколько людей не видел
    > тыкающих в терминал всегда после касания
    > человек убирает руку от экрана.
    Убирать-то убирает, но вот реакцию ожидает на касание, а не на отпускание. На себе проверял. :) И здесь дело не в торможении даже, а в том, что человек привык, что всё то, что он в реальном мире нажимает руками, срабатывает немедленно. Возьмите хоть компьютерную клавиатуру для примера, чтобы далеко не ходить. Вообще, вопрос этот не очевидный и вылезает только тогда, когда на это внимание обращаешь. А юзабилити зависит очень сильно от таких вещей.
  • Пробегал2.... (20.01.09 22:20) [57]
    vuk ©   (20.01.09 22:12) [56]
    Убирать-то убирает, но вот реакцию ожидает на касание, а не на отпускание. На себе проверял. :)


    я думаю это именно твои программисткие загоны, человека который хорошо понимает отличие клика от касания. По крайней мере я ни разу ни от кого не слышал проблемы при работе с терминалом, чтобы замечали такое.

    А вообще, если уж такая пьянка, то ВЕБ не предполагает исключительно клики, ты точно также в элементе можешь прописать JS-скрипт с событием на касание, а сам скрипт будет активировать навигацию. Это не говоря о том, что можно вообще FLASH внедрить и рисуй что угодно как угодно, хоть мультики показывай.
  • vuk © (20.01.09 22:29) [58]
    Это не загоны. Это реальные требования. Не мои, причем, а тех, кто софтИну тестил. Не надо быть программистом, чтобы заметить отличие существующей реакции интерфейса от ожидаемой. Разница ОЧЕНЬ существенная.
    С тем, что интерфейс сваять можно любой я согласен. Тут еще и от задач всё зависит.
  • @!!ex © (20.01.09 23:32) [59]
    > Не надо быть программистом, чтобы заметить отличие существующей
    > реакции интерфейса от ожидаемой. Разница ОЧЕНЬ существенная.
    > С тем, что интерфейс сваять можно любой я согласен. Тут
    > еще и от задач всё зависит.

    Блин. Я все понять не мог, что меня раздражает в терминале оплаты которым пользуюсь сейчас...
    Точно, он на клик реагирует а не на нажатие... Именно это и раздражает!
  • vuk © (21.01.09 13:28) [60]
    Если начать присматриваться, то видно, что большинство разработчиков софта для терминалов эту особенность учитывают, и реакция сделана именно на касание, а не на клик. Но иногда попадаются и такие терминалы, где стоит софт, разработчики которого на эту тему вообще не задумывались. Ощущения от работы с таким терминалом фиговенькие - постоянно кажется, что он тормозит.
  • @!!ex © (21.01.09 15:20) [61]
    > постоянно кажется, что он тормозит

    ага-ага. :)
 
Конференция "Прочее" » Сокрытие курсора с экрана
Есть новые Нет новых   [134453   +34][b:0.001][p:0.002]