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

Вниз

Сокрытие курсора с экрана   Найти похожие ветки 

 
Добежал   (2009-01-19 14:22) [0]

Как грамотно реализовать такой функционал:

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

Может, кто делал такое?


 
KSergey ©   (2009-01-19 14:32) [1]

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

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

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


 
Добежал   (2009-01-19 14:56) [2]


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


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


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


можно и так. Один вопрос - как? ))


 
ketmar ©   (2009-01-19 14:56) [3]

грамотно будет отрубить нафиг «реальную» мышь.

---
All Your Base Are Belong to Us


 
vuk ©   (2009-01-19 14:59) [4]

Э... А зачем совмещать сенсорный экран и мышь?


 
vuk ©   (2009-01-19 15:02) [5]

Сенсорные экраны нормально эмулируют мышь, и клики и перемещение.


 
БарЛог ©   (2009-01-19 15:20) [6]

левой рукой по тачскрину двигаешь влево, правой рукой мышку двигаешь вправо. смотреть, кто "победит" :)

а зачем курсор скрывать?


 
Добежал   (2009-01-19 15:31) [7]

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

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

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


 
test   (2009-01-19 15:38) [8]

Добежал   (19.01.09 15:31) [7]
А мышь зачем админу в Кваку на нем играть что ли?


 
Добежал   (2009-01-19 15:48) [9]

чтобы настраивать удобнее было блин.


 
ketmar ©   (2009-01-19 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 ©   (2009-01-19 16:00) [11]

> ketmar ©   (19.01.09 15:49) [10]
> вот для этого делают «технологический доступ». кнопочка в труднодоступном месте с паролем

прикинь пароль узнают.. а ведь текучка кадров наверняка не маленькая, и рулить на месте посылают наверняка студентов, как водится...


 
ketmar ©   (2009-01-19 16:20) [12]

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

---
All Your Base Are Belong to Us


 
ketmar ©   (2009-01-19 16:21) [13]

>[11] KSergey © (2009-01-19 16:00:00)
проблемы секурности, как понимаешь, решаются совсем другими методами.

---
Do what thou wilt shall be the whole of the Law.


 
Добежал   (2009-01-19 16:24) [14]

ketmar ©   (19.01.09 16:21) [13]
Ты дурак??


 
KSergey ©   (2009-01-19 16:27) [15]

Где же защитники всех униженных??!


 
ketmar ©   (2009-01-19 16:51) [16]

>[14] Добежал (2009-01-19 16:24:00)
>Ты дурак??

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

---
Do what thou wilt shall be the whole of the Law.


 
ketmar ©   (2009-01-19 16:55) [17]

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

---
Do what thou wilt shall be the whole of the Law.


 
Добежал   (2009-01-19 17:39) [18]

Товарищи, никто не знает как решить проблему в результате? Повторю вопрос:

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

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

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

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


 
KSergey ©   (2009-01-19 17:44) [19]

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

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

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

Не надо врать. Кто не врет - те регистрируются. И кто регистрируются - тот не врёт.


 
Добежал   (2009-01-19 17:44) [20]

пока придумал только половинчатое решение по второму пункту.

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

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


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

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

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

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

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


 
Добежал   (2009-01-19 17:46) [21]


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


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


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


просто чем меньше знаний нужно технику для управления ПО - тем лучше.


 
Добежал   (2009-01-19 17:46) [22]


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


ну так и начни с себя, не ври о том, чего не знаешь.


 
ketmar ©   (2009-01-19 18:03) [23]

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

---
Do what thou wilt shall be the whole of the Law.


 
Добежал   (2009-01-19 18:15) [24]


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

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

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

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

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


 
ketmar ©   (2009-01-19 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.


 
Добежал   (2009-01-19 18:34) [26]

Ясно.

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


 
ketmar ©   (2009-01-19 19:05) [27]

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

---
Understanding is not required. Only obedience.


 
Добежал   (2009-01-19 19:18) [28]

я уверен, что есть еще решения кроме драйвера-фильтра.

Еще продолжаю искать решение того, как скрыть курсор в TWebBrowser, независимо от текста загруженной страницы.


 
ketmar ©   (2009-01-19 20:12) [29]

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

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

---
All Your Base Are Belong to Us


 
[wl]   (2009-01-20 03:01) [30]

это что, очередной автомат по приему платежей?


 
Добежал   (2009-01-20 11:55) [31]


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


TEmbeddedWB? А как в нем сделать требуемое?


 
vuk ©   (2009-01-20 12:09) [32]

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


 
Добежал   (2009-01-20 12:30) [33]


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

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

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

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


 
vuk ©   (2009-01-20 12:33) [34]

to Добежал   (20.01.09 12:30) [33]:
>это глобально для системы
Вы проверяли? Судя по всему - нет. Это локально для приложения.


 
Добежал   (2009-01-20 12:42) [35]


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

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

Теперь осталась программа-максимум: каким-то образом понимать, перемещение курсора из-за мышки реальной происходит или тачпада...


 
AndreyV ©   (2009-01-20 12:51) [36]

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

В развитие кнопки от ketmar.
На сенсорном экране наверно нет имитации средней кнопки? Отлавливай нажатие на мышке, двойной клик колёсиком, например, включает/выключает.


 
vuk ©   (2009-01-20 13:04) [37]

На сенсорном экране и правой-то кнопки нету. Не говоря уже о средней. :)


 
KSergey ©   (2009-01-20 13:19) [38]

О, к стати колеса - тоже нету! можно прокручивание колеса отлавливать, это просто


 
AndreyV ©   (2009-01-20 13:34) [39]

> [37] vuk ©   (20.01.09 13:04)
> На сенсорном экране и правой-то кнопки нету. Не говоря уже
> о средней. :)


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

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

Ещё экзотика: отстучать морзянкой слово "курсор" в определённом месте экрана.:) Но это могут и пользователи сделать.


 
KSergey ©   (2009-01-20 13:58) [40]

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

Ага, админамм проходить двухнедельные курсы со сдачей зачета :)


 
AndreyV ©   (2009-01-20 14:07) [41]

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

Админ должен уметь пользоваться бубном. Надо только ритм запомнить.:)


 
@!!ex ©   (2009-01-20 15:04) [42]

> [32] vuk ©   (20.01.09 12:09)
> Я не понял, а что, ShowCursor(false) не работает?

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


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

Если за секунду более 50 перемещений(обычное перемещение мышки при медленном движении генерит десятка два сообщений, если быстро - больше сотни... я посмотрю на "хакера" кликающего на тачпад со скоростью 50 кликов в секунду в разных местах), значит мышка - врубаем. Если в течении 20 секунд не происходит движения - вырубаем.
Если же тачскрин умеет ловить перемещение, то мышка обычная технарю нафиг не сплющилась.


 
KSergey ©   (2009-01-20 15:40) [43]

> AndreyV ©   (20.01.09 13:34) [39]
> Правая кнопка и прокрутка пригодятся при работе мышкой

Я же не предлагаю их "съедать". просто реагировать и пробрасывать далее. Впрочем, тут на усмотрение автора, интересные методы явно нашлись.


 
vuk ©   (2009-01-20 16:02) [44]

to @!!ex ©   (20.01.09 15:04) [42]:

>Я все ждал, когда же это предложат? :))
Я, собственно, тоже ждал. Потом надоело.
Кстати, насколько я понял, иногда курсор все-таки появляется, хотя явно его видимым никто не делает. Приходится периодически его принудительно прятать.


 
ketmar ©   (2009-01-20 16:32) [45]

>[42] @!!ex © (2009-01-20 15:04:00)
>Я все ждал, когда же это предложат? :))

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

---
Understanding is not required. Only obedience.


 
ketmar ©   (2009-01-20 16:33) [46]

>[44] vuk © (2009-01-20 16:02:00)
>Кстати, насколько я понял, иногда курсор все-таки появляется, хотя явно его
>видимым никто не делает.

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

---
Do what thou wilt shall be the whole of the Law.


 
Добежал   (2009-01-20 16:40) [47]


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

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


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

это неправда. Я нигде не говорил, что хочу именно средствами IE. Где я такое писал? Нигде, так что не надо фантазировать, пожалуйста.


 
vuk ©   (2009-01-20 16:46) [48]

Неохота мне туда лезть. :)
Тем более, что кто выступает в качестве супостата совершенно неясно, т.к. вызовов ShowCursor в приложении и компонентах нет. Возможно, как-то неявно влияют изменения свойства Screen.Cursor в недрах генофонда...


 
ketmar ©   (2009-01-20 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 ©   (2009-01-20 17:20) [50]

to Добежал   (20.01.09 16:40) [47]:

>интересно, а на какой логике основано данное поведение - знать
>путь решения проблемы, но не говорить его, ждать пока другие
>его скажут?!
Собственно, была надежда, что автор вопроса таки найдет эту функцию самостоятельно. От самостоятельных поисков толку больше. На поиск нужно затратить всего-то пару минут.


 
ketmar ©   (2009-01-20 17:43) [51]

>[50] vuk © (2009-01-20 17:20:00)
>Собственно, была надежда, что автор вопроса таки найдет эту функцию
>самостоятельно.

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

---
Understanding is not required. Only obedience.


 
vuk ©   (2009-01-20 20:21) [52]

Кстати. Я бы вообще для терминала веб-интерфейс не стал использовать. Потому, что делать "клики" пальцами по тачскрину неудобно, юзером ожидается ожидается реакция на касание, а получается реакция на "клик" (касание + отпускание).


 
@!!ex ©   (2009-01-20 20:25) [53]

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

В моем случае под "ждал" подразумевалось не ожидание, когда кто нибудь уже напишет в ветке, а чтение все ветки и ожидание что уже должен был кто-то из полустони отпостившихся вспомнить о существовании функции. vuk вспомнил.


 
Пробегал2....   (2009-01-20 21:47) [54]

vuk ©   (20.01.09 20:21) [52]
Кстати. Я бы вообще для терминала веб-интерфейс не стал использовать


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

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


вообще не понял. Сколько людей не видел тыкающих в терминал всегда после касания человек убирает руку от экрана.


 
ketmar ©   (2009-01-20 21:51) [55]

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

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

---
All Your Base Are Belong to Us


 
vuk ©   (2009-01-20 22:12) [56]

>вообще не понял. Сколько людей не видел
> тыкающих в терминал всегда после касания
> человек убирает руку от экрана.
Убирать-то убирает, но вот реакцию ожидает на касание, а не на отпускание. На себе проверял. :) И здесь дело не в торможении даже, а в том, что человек привык, что всё то, что он в реальном мире нажимает руками, срабатывает немедленно. Возьмите хоть компьютерную клавиатуру для примера, чтобы далеко не ходить. Вообще, вопрос этот не очевидный и вылезает только тогда, когда на это внимание обращаешь. А юзабилити зависит очень сильно от таких вещей.


 
Пробегал2....   (2009-01-20 22:20) [57]

vuk ©   (20.01.09 22:12) [56]
Убирать-то убирает, но вот реакцию ожидает на касание, а не на отпускание. На себе проверял. :)


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

А вообще, если уж такая пьянка, то ВЕБ не предполагает исключительно клики, ты точно также в элементе можешь прописать JS-скрипт с событием на касание, а сам скрипт будет активировать навигацию. Это не говоря о том, что можно вообще FLASH внедрить и рисуй что угодно как угодно, хоть мультики показывай.


 
vuk ©   (2009-01-20 22:29) [58]

Это не загоны. Это реальные требования. Не мои, причем, а тех, кто софтИну тестил. Не надо быть программистом, чтобы заметить отличие существующей реакции интерфейса от ожидаемой. Разница ОЧЕНЬ существенная.
С тем, что интерфейс сваять можно любой я согласен. Тут еще и от задач всё зависит.


 
@!!ex ©   (2009-01-20 23:32) [59]

> Не надо быть программистом, чтобы заметить отличие существующей
> реакции интерфейса от ожидаемой. Разница ОЧЕНЬ существенная.
> С тем, что интерфейс сваять можно любой я согласен. Тут
> еще и от задач всё зависит.

Блин. Я все понять не мог, что меня раздражает в терминале оплаты которым пользуюсь сейчас...
Точно, он на клик реагирует а не на нажатие... Именно это и раздражает!


 
vuk ©   (2009-01-21 13:28) [60]

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


 
@!!ex ©   (2009-01-21 15:20) [61]

> постоянно кажется, что он тормозит

ага-ага. :)



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

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

Наверх




Память: 0.62 MB
Время: 0.046 c
4-1207330446
Riply
2008-04-04 21:34
2009.03.29
NtReadFile NtFsControlFile. Разница возвращаемых данных.


2-1233905029
stas
2009-02-06 10:23
2009.03.29
TWebBrowser


15-1232422546
DelphiN!
2009-01-20 06:35
2009.03.29
Неудается завершить пользовательский процес


2-1233266659
Тимоха
2009-01-30 01:04
2009.03.29
непонятки со string


15-1232239056
XentaAbsenta
2009-01-18 03:37
2009.03.29
хелп! что за троян был по ссылке? я тоже попался





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский