Что нового

Перемещение окна - кликом мышки по любым координатам на экране.

Пост номер 7 был отмечен как лучший ответ.

mv6677

Новичок
Сообщения
105
Репутация
0
Доброго дня.

Подскажите пожалуйста - как кодом au3 сделать такое ?:

Вот есть допустим окно, которое на момент запуска выделено последним.
И скрипт работает так - вот он запускается, определяет какое окно было выделено последним.
И ждет клика мышкой.
И вот куда был клик мышкой - туда, в те координаты это окно и должно перенестись (не меняя своих размеров).
Затем скрипт прекращает свою работу.

Просто мониторы от одного компьютера - в разных комнатах стоят, и приходится бегать иногда из комнаты в комнату, чтобы окно программы перетаскивать на другой монитор.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 166
Репутация
2 331
мониторы от одного компьютера - в разных комнатах стоят, и приходится бегать иногда из комнаты в комнату, чтобы окно программы перетаскивать на другой монитор
Зачем? Обычно при двух мониторах ставится спец. программа, например DisplayFusion, которая позволяет получать доступ к элементам с любого из мониторов.
 
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
DisplayFusion у меня стоит - там разные обои можно выставлять для разных рабочих столов.
Я вообще не об этом спрашивал.

Я спросил - как переместить активное на момент запуска скрипта окно - туда куда один раз я кликну мышкой ?
То есть туда, в те координаты клика мышки - это окно и должно перенестись (не меняя своих размеров).
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
На Win7 и выше сочетание клавиш "Win + Shift + стрелка влево или вправо" перемещает активное окно с одного монитора на другой.
 
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
InnI
Я знаю.
Если мониторов много - это сколько надо нажимать сочетания клавиш - чтобы выделенное окно дошло до нужного монитора.,
Это все сочетания клавиш (весьма неудобные кстати), а я спрашиваю про скрипт реагирующий на щелчок мыши.
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
окно, которое на момент запуска выделено последним
Что вы подразумеваете под запуском? Если запустить скрипт из проводника, то последним активным будет проводник, если с рабочего стола, то рабочий стол, если из SciTE, то окно SciTE.
куда был клик мышкой - туда, в те координаты это окно и должно перенестись
В координатах клика должен быть левый верхний угол окна или центр окна или что-то ещё? А если при переносе окно выйдет за пределы экрана? Например, при клике в самый низ монитора.
как кодом au3 сделать такое ?
Код:
_IsPressed()
MouseGetPos()
WinMove()
 
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
Что вы подразумеваете под запуском? Если запустить скрипт из проводника, то последним активным будет проводник ...
Запуск скрипта будет происходить не щелчком, а горячей клавишей, но это уже другая история.
Сейчас вопрос - просто как переместить окно - в координаты клика ?

В координатах клика должен быть левый верхний угол окна
Да, левый верхний угол.

А если при переносе окно выйдет за пределы экрана?
Да ничего страшного. Главное - окно будет перенесено.
Сообщение автоматически объединено:

Помогите.
 
Последнее редактирование:

Tempo

Скриптер
Сообщения
503
Репутация
149
  • Like
Реакции: Norm
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
На ваш вопрос уже ответили. Чем вам еще помочь?
Ну уж как-то очень непонятно ответили.

Я на форуме искал похожие темы - ничего не нашел.
Вот и пишу - может кто поможет.
Сообщение автоматически объединено:

Вот перемещение окна:
Код:
WinMove("[ACTIVE]","",100, 200)


Вот координаты мышки (которые кстати не по клику определяются):
Код:
$aPos = MouseGetPos()
MsgBox(4096, "Координаты курсора мыши:", 'X= ' & $aPos[0] & ", Y= " & $aPos[1])


А как это все воедино увязать , в соответствии с моим вопросом ?
 
Последнее редактирование:

Tempo

Скриптер
Сообщения
503
Репутация
149
А как это все воедино увязать
Последовательно, например:

С помощью _IsPressed ожидайте клик мыши (в справка есть пример)
После клика получите координаты мыши функцией MouseGetPos (в справка есть пример)
Переместите активное окно с помощью функции WinMove указав полученные координаты (в справка есть пример)
 
  • Like
Реакции: Norm
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
А !!!!
Все, догадался.
Действительно просто.

Всем спасибо за ответы в теме.
 
Верх