Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Вопрос по рабочим столам в Win10
Glosha
сообщение 4.8.2019, 14:16
Сообщение #1


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



День добрый!
Вопрос по рабочим столам в Win10.
Подскажите пожалуйста, а можно эмулировать в кликере перетаскивание окна на рабочий стол 2,3 и тп?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 4.8.2019, 23:53
Сообщение #2


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



код
Код
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 5.8.2019, 10:20
Сообщение #3


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(Fors1k @ 4.8.2019, 23:53) *

код
Код
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script


Спасибо огромное!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 5.8.2019, 14:43
Сообщение #4


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(Fors1k @ 4.8.2019, 23:53) *

код
Код
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script


подскажи еще пожалуйста... мне нужно запустить продолжение скрипта в нужно время: например запустил скрипт в любое удобное время, а он в 10 утра продолжил исполнять скрипт дальше.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.8.2019, 15:08
Сообщение #5


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
запустил скрипт в любое удобное время, а он в 10 утра продолжил исполнять скрипт дальше.

Код
while hour != 10 or min != 0  // ждать когда будет 10 часов 0 минут
    wait 10
end_while
// дальше скрипт
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 5.8.2019, 15:15
Сообщение #6


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(cirus @ 5.8.2019, 15:08) *

Код
while hour != 10 or min != 0  // ждать когда будет 10 часов 0 минут
    wait 10
end_while
// дальше скрипт
end_script


Спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 5.8.2019, 19:08
Сообщение #7


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



подскажите, а есть ограничения на команды wait ? ну например мне нужно 3 часа ожидания... или лучше такие промежутки заводить через таймер?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 5.8.2019, 19:46
Сообщение #8


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Glosha @ 5.8.2019, 19:08) *

подскажите, а есть ограничения на команды wait ? ну например мне нужно 3 часа ожидания... или лучше такие промежутки заводить через таймер?

Нюансы такого плана ты можешь узнать в вики.
Wait

Код
Wait 3h


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 6.8.2019, 0:38
Сообщение #9


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Fors1k @ 5.8.2019, 19:46) *

Нюансы такого плана Вы можете узнать в вики.
Wait

Код
Wait 3h


Помоему такого формата не работает, нужно переводить в минуты, секунды или милесекунды... Но могу и ошибаться далёко от пк что бы проверить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 6.8.2019, 10:17
Сообщение #10


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(FREEON @ 6.8.2019, 0:38) *

Помоему такого формата не работает, нужно переводить в минуты, секунды или милесекунды... Но могу и ошибаться далёко от пк что бы проверить.

у меня такой формат не работает ... 180m работает
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 6.8.2019, 22:46
Сообщение #11


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



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


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 7.8.2019, 15:05
Сообщение #12


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(Fors1k @ 4.8.2019, 23:53) *

код
Код
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script



Обновился на вин 1903 и перестало работать, после вин +таб не прожимает выбора стола
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 7.8.2019, 16:36
Сообщение #13


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Glosha @ 7.8.2019, 15:05) *

Обновился на вин 1903 и перестало работать, после вин +таб не прожимает выбора стола

Попробуй этот
в первой строке: откуда куда окно
Код
call vDesktop 1 2 5116634
end_script
proc vDesktop #iz #v #handle
set linedelay 0
set workwindow #handle
showwindow workwindow
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
if  #iz < #v
set #a 2
else
set #a 1
end_if
wait 400
sendex_down ~{F10}
sendex_up ~{F10}
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #v - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
end_proc

Этот работает побыстрее.
Если не срабатывает, то прибавляй к вэйту по 10, и пробуй, пока не заработает. У всех разная скорость анимации, тебе надо подобрать свою, что бы он успевал.
Лучше подбирать на самом дальнем столе, из всех, которые будут использоваться. Чем дальше стол, из которого нужно перетащить окно, тем больше нужен вэйт. У меня для 8го стола вышло 400мс для безошибочной работы. То есть, если у тебя 3 стола, то подбирай для третьего, и т.д..


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 7.8.2019, 17:21
Сообщение #14


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(Fors1k @ 7.8.2019, 16:36) *

Попробуй этот
в первой строке: откуда куда окно
Код
call vDesktop 1 2 5116634
end_script
proc vDesktop #iz #v #handle
set linedelay 0
set workwindow #handle
showwindow workwindow
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
if  #iz < #v
set #a 2
else
set #a 1
end_if
wait 400
sendex_down ~{F10}
sendex_up ~{F10}
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #v - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
end_proc

Этот работает побыстрее.
Если не срабатывает, то прибавляй к вэйту по 10, и пробуй, пока не заработает. У всех разная скорость анимации, тебе надо подобрать свою, что бы он успевал.
Лучше подбирать на самом дальнем столе, из всех, которые будут использоваться. Чем дальше стол, из которого нужно перетащить окно, тем больше нужен вэйт. У меня для 8го стола вышло 400мс для безошибочной работы. То есть, если у тебя 3 стола, то подбирай для третьего, и т.д..


выскакивает в самом начале

ps. фиксанул твой старый код, там лишний "sendex {Down}" был, просто стояла без задержек и не успевал сообразить, что происходило.


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 7.8.2019, 18:20
Сообщение #15


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Glosha @ 7.8.2019, 17:21) *

выскакивает в самом начале

Не все строки скопировал.
Код
end_proc

Он просит эту строку в конце.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 7.8.2019, 18:40
Сообщение #16


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Glosha @ 7.8.2019, 17:21) *

ps. фиксанул твой старый код, там лишний down был, просто стояла без задержек и не успевал сообразить, что происходило.

желательно еще определиться с pid процесса(окна)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 7.8.2019, 18:49
Сообщение #17


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Glosha @ 7.8.2019, 17:21) *
..., там лишний down был, просто стояла без задержек и не успевал сообразить, что происходило.

Поздравляю, что все заработало)


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.8.2019, 18:31
Сообщение #18


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
подскажите, а есть ограничения на команды wait ? ну например мне нужно 3 часа ожидания... или лучше такие промежутки заводить через таймер?

Они есть и не очень большие. То ли 3 то ли 4 с чем-то часа. Связано, как я подозреваю, с переполнением переменной. Чтобы избежать таких проблем при больших задержках используйте циклы, как приведено выше.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 9.8.2019, 19:24
Сообщение #19


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(DarkMaster @ 9.8.2019, 18:31) *
Связано, как я подозреваю, с переполнением переменной.

Wait - это int? Получается он может вместить ~2.15 млрд мс, что равно ~600 часов. Значит даже wait 596h должно работать, разве нет? В описании у вэйта есть параметр h, но чет он сломался.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 10.8.2019, 1:10
Сообщение #20


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Похоже со времен написания wait, символ h был зарезервирован. Скорее всего для указания шестнадцатеричного формата чисел. И wait так невзначай отвалился...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

4 страниц V  1 2 3 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 1:03
Designed by Nickostyle