1 (изменено: slava, 2014-12-16 01:07:00)

Тема: АНК: Курсор мыши переместить в центр экрана

Подскажите пожалуйста, как сделать так, чтобы когда курсор мыши упирался в границы экрана он перемещался в центр экрана?

2 (изменено: Malcev, 2014-12-16 04:00:50)

Re: АНК: Курсор мыши переместить в центр экрана

Действительно, очень непросто

loop
{
   CoordMode, Mouse
   MouseGetPos, xpos, ypos
   if (xpos <= 0) or (xpos >= A_ScreenWidth) or (ypos <= 0) or (ypos >= A_ScreenHeight)
      MouseMove, A_ScreenWidth/2, A_ScreenHeight/2
   sleep 50

}

3 (изменено: Malcev, 2014-12-16 04:37:11)

Re: АНК: Курсор мыши переместить в центр экрана

Теория хромает:
http://www.autohotkey.com/docs/commands/CoordMode.htm
Но конечно из цикла Coordmode надо вывести.

4 (изменено: serzh82saratov, 2014-12-16 13:21:18)

Re: АНК: Курсор мыши переместить в центр экрана

Как вариант без цикла:


#Persistent 
#NoEnv
ListLines Off  
SetBatchLines -1 
OnExit, Exit
hHookMouse := DllCall("SetWindowsHookEx"
   , Int, WH_MOUSE_LL := 14
   , Int, RegisterCallback("LowLevelMouseProc", "Fast")
   , Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
   , UInt, 0, Ptr)
 Return

Exit:
    DllCall("UnhookWindowsHookEx", Ptr, hHookMouse)
    ExitApp

LowLevelMouseProc(nCode, wParam, lParam)
{
   static x, y 
    If (wParam = 0x200)  ; WM_MOUSEMOVE
    {
        x := NumGet(lParam + 0, "Int"), y := NumGet(lParam + 4, "Int") 
        SetTimer, EventHandling, -10
    }
    Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, UInt, wParam, UInt, lParam)

EventHandling:
    If (x <= 0 || y <= 0 || x >= A_ScreenWidth || y >= A_ScreenHeight)
        MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
    Return
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5 (изменено: S.shipilov, 2014-12-16 14:20:01)

Re: АНК: Курсор мыши переместить в центр экрана

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

Что же касается троллинга который ты тут развел, а это именно троллинг.

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

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

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

6

Re: АНК: Курсор мыши переместить в центр экрана

Вынужден убрать посты с флудом, пожалуй, кроме последнего, т. к. мог бы то же самое сказать от себя. <IvanSan>, вам предупреждение.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: АНК: Курсор мыши переместить в центр экрана

На форуме запрещены:
- ругань
- ругательства
- беспредметный разговор или отход от темы обсуждения
- перепалка

<IvanSan> - серьёзное предупреждение за ругань и перепалку
serzh82saratov - китайское предупреждение за переход на личности и перепалку

8

Re: АНК: Курсор мыши переместить в центр экрана

serzh82saratov пишет:

Всегда считал, что вина за такие проступки лежит всецело на том - кто первый перешёл на личности.

Так и есть:
<IvanSan> первым перешёл на личность в отношении Malcev
serzh82saratov первым перешёл на личность в отношении <IvanSan>

9

Re: АНК: Курсор мыши переместить в центр экрана

serzh82saratov пишет:

Человек без комплексов на такие вещи обычно просто не обращает внимания.

Ну на перепалку внимание обратили, виновных нашли, и всё за даром.

10

Re: АНК: Курсор мыши переместить в центр экрана

serzh82saratov, я ничего не говорил про комплексы, а только развеял Ваши сомнения из 10 сообщения.

По поводу этого ответил teadrinker там же в следующем сообщеии.

11

Re: АНК: Курсор мыши переместить в центр экрана

serzh82saratov пишет:

Как вариант без цикла:


#Persistent 
#NoEnv
ListLines Off  
SetBatchLines -1 
OnExit, Exit
hHookMouse := DllCall("SetWindowsHookEx"
   , Int, WH_MOUSE_LL := 14
   , Int, RegisterCallback("LowLevelMouseProc", "Fast")
   , Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
   , UInt, 0, Ptr)
 Return

Exit:
    DllCall("UnhookWindowsHookEx", Ptr, hHookMouse)
    ExitApp

LowLevelMouseProc(nCode, wParam, lParam)
{
   static x, y 
    If (wParam = 0x200)  ; WM_MOUSEMOVE
    {
        x := NumGet(lParam + 0, "Int"), y := NumGet(lParam + 4, "Int") 
        SetTimer, EventHandling, -10
    }
    Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, UInt, wParam, UInt, lParam)

EventHandling:
    If (x <= 0 || y <= 0 || x >= A_ScreenWidth || y >= A_ScreenHeight)
        MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
    Return
}

Спасибо. Работает отлично!

12

Re: АНК: Курсор мыши переместить в центр экрана

serzh82saratov пишет:

Ну так допустим если Я человека назвал - идиотом, и это факт. То получается на личности Я не переходил?
Иначе всё зависит, кто что считает фактами, и прав тут будет тот, у кого больше прав.

Каша-малаша.
Правильно понимать так: если я (кстати, с маленькой буквы в русском языке) безосновательно назвал человека идиотом и он сильно обиделся - значит у него сильно большие комплексы. Вот в чём факт.

S.shipilov, модераторы не выясняют отношения, а вырабатывают у пользователе иммунитет против "смуты".

13

Re: АНК: Курсор мыши переместить в центр экрана

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder