Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Изменение курсора Добавлено: 30.08.10 15:06  

Автор вопроса:  serjik
Всё копаюсь в инете в поисках отслеживания изменения курсора мыши в винде...и вот до чего дорылся...
судя повсему, единственный способ отследить измение курсора это перехватить сообщение WM_SETCURSOR посылаемую виндой в окно приложения...для этого нужно знать по идее тока хэндл окна...
но к сожалению моих знаний не достаточно чтоб это всё в код вогнать(
Может кто поможет?

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 MISTER X



ICQ: 463865965 

Вопросов: 31
Ответов: 190
 Web-сайт: studioartf.ru
 Профиль | | #1
Добавлено: 23.09.10 21:30
Может я тупой..но я чет не пойму че ты хочешь?ты хочешь определить.изменился ли курсор у юзера со стандартного на др??

Ответить

Номер ответа: 2
Автор ответа:
 serjik



Вопросов: 4
Ответов: 22
 Профиль | | #2 Добавлено: 23.09.10 23:40
именно) тока не на форме, а в проводнике виндовом например

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 24.09.10 10:02
а по таймеру проверять хандл курсора? или он не меняется?

Ответить

Номер ответа: 4
Автор ответа:
 serjik



Вопросов: 4
Ответов: 22
 Профиль | | #4 Добавлено: 24.09.10 10:19
эмм...я даж не знаю как это) я в таймере проверял на изменение OCR_normal...на форме работает, в среде разработки работает, в винде не работает)

Ответить

Номер ответа: 5
Автор ответа:
 MISTER X



ICQ: 463865965 

Вопросов: 31
Ответов: 190
 Web-сайт: studioartf.ru
 Профиль | | #5
Добавлено: 25.09.10 13:09
мда..ну ты и задал задачку)))

Ответить

Номер ответа: 6
Автор ответа:
 serjik



Вопросов: 4
Ответов: 22
 Профиль | | #6 Добавлено: 25.09.10 13:38
я уже месяц голову ломаю) даже никаких мыслей нет)

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 25.09.10 22:51
одна мысль - а нАХ?

Ответить

Номер ответа: 8
Автор ответа:
 Eugy



Вопросов: 0
Ответов: 73
 Профиль | | #8 Добавлено: 26.09.10 01:16
Не парься.
  1. POINT pt;
  2. DWORD tridXz, tridMy;
  3. HCURSOR hcursor;

  4. GetCursorPos(&pt);
  5. tridXz = GetWindowThreadProcessId(WindowFromPoint(pt), 0);
  6. tridMy = GetCurrentThreadId();
  7. if (tridXz != tridMy)  AttachThreadInput(tridMy, tridXz, TRUE);
  8. hcursor = GetCursor();
  9. if (tridXz != tridMy)  AttachThreadInput(tridMy, tridXz, FALSE);

Ответить

Номер ответа: 9
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #9
Добавлено: 26.09.10 01:43
http://msdn.microsoft.com/en-us/library/ms648389(v=VS.85).aspx - гораздо проще. Это раз.

И второе. Тебе надо узнать, заменили ли иконку стрелочки на иконку идущего динозавра? =) Или что курсор поместили на ссылку и он стал в виде пальца? То есть, изменился ли тип курсора, или же его картинка?

Ответить

Номер ответа: 10
Автор ответа:
 Eugy



Вопросов: 0
Ответов: 73
 Профиль | | #10 Добавлено: 26.09.10 01:59
глобальный курсор и текущий - разные вещи ;)

Ответить

Номер ответа: 11
Автор ответа:
 serjik



Вопросов: 4
Ответов: 22
 Профиль | | #11 Добавлено: 26.09.10 04:05
Картинку я уже научился отлавливать)) а вот как раз этот момент когда его помещают на ссылку или появляются песочные часы, это проблема...тока мне нужно не в виде пальца, а в виде разнообразных стрелочек) когда курсор попадает на границу чего-либо, необязательно окна..

Ответить

Номер ответа: 12
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #12
Добавлено: 26.09.10 13:47
http://msdn.microsoft.com/en-us/library/ms648389(v=VS.85).aspx

Ответить

Номер ответа: 13
Автор ответа:
 serjik



Вопросов: 4
Ответов: 22
 Профиль | | #13 Добавлено: 26.09.10 17:59
не совсем понятно...то есть эта апишка возвращает размер системного курсора? то есть если проверять её в таймере на изменение, то всё получится?) а не подскажешь как это на практике будет?

Ответить

Номер ответа: 14
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #14
Добавлено: 26.09.10 21:45
Она получает инфу о курсоре. В том числе хэндл. При смене курсора на другой, хэндл меняется.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам