Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.29;
Скачать: CL | DM;

Вниз

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

 
Добежал   (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]
> Ещё экзотика: отстучать морзянкой слово "курсор" в определённом  месте экрана.:)

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



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

Текущий архив: 2009.03.29;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.027 c
2-1233138545
Oleg_teacher
2009-01-28 13:29
2009.03.29
Узнать могу ли я создать файл в папке


15-1233026464
Slider007
2009-01-27 06:21
2009.03.29
С днем рождения ! 27 января 2009 вторник


15-1232358556
Буратиноо
2009-01-19 12:49
2009.03.29
Перевод на С++


11-1197987179
nikfel
2007-12-18 17:12
2009.03.29
Как проиграть wav-файл.


11-1194085017
Vladimir KladovVladimir Kladov
2007-11-03 13:16
2009.03.29
Версия 2.85