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

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


**

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



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


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



код
Код
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
Сообщений: 43
Регистрация: 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
Сообщений: 43
Регистрация: 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
Сообщений: 2.635
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 16724
Пользователь №: 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
Сообщений: 43
Регистрация: 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
Сообщений: 43
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



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


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



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

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

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

Код
Wait 3h


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


****

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



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

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

Код
Wait 3h


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


**

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



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

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

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


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



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


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


**

Neophyte
Сообщений: 43
Регистрация: 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


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



Цитата(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
Сообщений: 43
Регистрация: 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


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



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

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

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

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


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


****

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



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

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

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


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



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

Кстати, ничего не понял, но поздравляю, что все заработало)


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


***********

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



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

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


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 9.8.2019, 19:24
Сообщение #19


****

Apprentice
Сообщений: 212
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 1036
Пользователь №: 18.746
Возраст: 26



Цитата(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.638
Регистрация: 9.1.2006
Группа: Модераторы
Наличность: 7279
Пользователь №: 4.688



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

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

 

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