![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как недопустить перемещение курсора в определенной области экрана |
|
[решено] Как недопустить перемещение курсора в определенной области экрана
|
Новый участник Сообщения: 7 |
Дано:
Чужое окно программы (Допустим программа notepad.exe). Задача: Необходимо чтобы, при перемещении по экрану, курсор не смог попасть внутрь данного окна. (То бишь он как бы упирался в границы окна) Замечание: Это как бы использование функции _MouseTrap() которая ограничивает перемещение курсора мыши по указанным координатам, но только из вне прямоугольника. |
|
Отправлено: 01:55, 15-03-2011 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать 1. Вот попробуйте такой вариант:
#Include <WinAPI.au3> #Include <Array.au3> HotKeySet("{Esc}", "end") $iDesktopHeight = @DesktopHeight $iDesktopWidth = @DesktopWidth $hGui = GUICreate("Наведи на меня", 300, 200,-1, -1) GUISetState() $aWinPosition = WinGetPos($hGui) $tOldXpos = 1 $tOldYpos = 1 While 1 $tPoint = _WinAPI_GetMousePos() $tXpos = DllStructGetData($tPoint, "X") $tYpos = DllStructGetData($tPoint, "Y") If $tXpos > $aWinPosition[0] and $tXpos < ($aWinPosition[0] + $aWinPosition[2]) And $tYpos > $aWinPosition[1] and $tYpos < ($aWinPosition[1] + $aWinPosition[3])Then MouseMove($tOldXpos,$tOldYpos,0) Else $tOldXpos = $tXpos $tOldYpos = $tYpos EndIf WEnd Func end() Exit EndFunc ![]() 2. Или вот интерпретация для "чужого окна программы": #Include <WinAPI.au3> #Include <Array.au3> HotKeySet("{Esc}", "end") Local $iDesktopHeight = @DesktopHeight Local $iDesktopWidth = @DesktopWidth Run(@SystemDir & '\calc.exe') WinWait('Калькулятор') Local $aWinPosition = WinGetPos('Калькулятор') Local $tOldXpos = 1 Local $tOldYpos = 1 While 1 $tPoint = _WinAPI_GetMousePos() $tXpos = DllStructGetData($tPoint, "X") $tYpos = DllStructGetData($tPoint, "Y") If $tXpos > $aWinPosition[0] And $tXpos < ($aWinPosition[0] + $aWinPosition[2]) And $tYpos > $aWinPosition[1] And $tYpos < ($aWinPosition[1] + $aWinPosition[3]) Then MouseMove($tOldXpos,$tOldYpos,0) Else $tOldXpos = $tXpos $tOldYpos = $tYpos EndIf WEnd Func end() Exit EndFunc |
Последний раз редактировалось centaurvv, 15-03-2011 в 03:08. Отправлено: 02:47, 15-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Благодарю centaurvv
В сущности то что необходимо. Единственное, что по моему, лишнее, так это _WinAPI_GetMousePos(). MouseGetPos () не плохо справляется со своей задачей. А так еще раз спасибо.. ![]() |
Отправлено: 09:32, 15-03-2011 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как насильно запретить запуск определенной программы (процесса)? | st031 | Microsoft Windows 2000/XP | 4 | 05-06-2009 10:24 | |
Закрепление определенной области в Браузере. | BROTHERHOOD | Хочу все знать | 4 | 31-01-2009 18:56 | |
Интерфейс - [решено] Как отключить автоперемещение курсора на активное окно | SWiTChm | Microsoft Windows 2000/XP | 2 | 16-10-2008 19:38 | |
[решено] Как восстановить в неразмеченной области 8mb? | Seryi 134 | Microsoft Windows 2000/XP | 5 | 15-02-2007 15:49 | |
Delphi - Как в Delphi заставить звуковую карту генерировать звук определенной частоты? | Alexander_Grig | Программирование и базы данных | 12 | 17-05-2005 13:28 |
|