Здравствуйте. Познания мои в ассемблере не велики, что можно понять из названия ветки форума в которой размещена эта тема)) В целях получения практического опыта хочу создать программу следующего содержания: Назвается "Пьяная мышь". Суть вот в чем. Запущеная прога меняет траекторию движения мыши так, что она движется не по прямой относительно движений руки пользователя, а как бы "шатаясь", например по синусоиде, для начала. Иногда, к примеру раз в пол минуты курсор мыши замирает на экране(типо свалилась от поглащенного алкоголя), чтобы "вернуть" его к жизни надо будет подергать мышь вправо-влево. Иконку курсора хочу сделать анимированную, причем менять анимацию при определенных условиях, например по наступлению условия замирания курсора на экране, и его возвращения к жизни(силует человечка, подмиающегося с пола). Так вот, как можно задать параметры курсора, стиль и пр. не в отдельном окне а на всей области рабочего стола. Те API функции которые я нашел позволяют менять только в области своего окна. Или надо работать с драйвером? Вобщем дайте мне ключевые слова, чтобы знать, какую инфу искать, а то все что нахожу - не то. Благодарю Вас.
А что, если получить клиентскую область рабочего стола и применить к ней новый курсор? Правда, не знаю, будет ли он другим на обычных окнах
антиреклама алкоголя? .) это мы поддерживаем, это мы обеими руками! GetCursorPos(); SetCursorPos(); а курсор глобально - это только системный менять, что есть жажа и комер крайне не советуе. ну и да: с хендлами чужих окон работать ещё не запрещали, так что присвойте себе привелегии, а чужим окнам - курсоры, да побольше ,)
Comer_ Но в этом случае придется отслеживать создание новых окон) А в варианте с хуком - нет. Но хук бяка, да.
max7C4 не, это то все поняли, и даже не wfp, а getforegroundwindow, но суть в том, что надо цикл, и отслеживать, который вот грейт посчитал дурным тоном, а я считаю что варианта пока лучше нет, и вариант с хуком вовсе вариантом считаться не должен. хотя какая разница? всёравно мы выяснили что я - собирательная персона, в том числе являющаяся грейтом/
Так, по порядку, курсор наверно придется загружать LoadCursorFromFile, щас прогу для создания *.ani только докачаю. Можно подробней про присвоение привилегий? неуверен что нашел именно ту информацию которая нужна. Так же прошу Вас немного подробней говорить про методы описанные вами, я конечно прилагаю все возможные усилия для понимания, но сами понимаете, иногда незнаеш на что опереться, вобщем от дополнительной информации не откажусь. Спасибо.
1) хук. ставишь хук на все модули на события от мыши (копай SetWindowHookEx), их же (события) и изменяешь 2) в цикле определяешь направление движения мыши и изменяешь траекторию. (копай GetCursorPos) 3) получаешь окно под мышкой и подменяешь его курсор (копая WindowFromPoint) по перекрестным ссылкам в MSDN найдешь все необходимое.