-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Как запустить случайную команду?
Имеется такая команда:
Код:
WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (21).jpg"
Как скриптом автоит запустить ее чтобы жирная цифра при каждом запуске скрипта была случайная в заданном интервале, допустим с 01 по 69?
|
Наверное, так:
Код:
$rnd = Round(Random(1, 69))
if $rnd < 10 then
$rnd = "0" & $rnd
endif
Run("WinstyleMonitor.exe -LP '%Windir%\Web\Wallpaper\WinStyle (" & $rnd & ").jpg'")
|
А зачем проверка, для таких расширений обычно используется StringFormat, и тем более в примере ошибка с кавычками:
|
Цитата:
Цитата Creat0R
в примере ошибка с кавычками »
|
ничего подобного, ошибки нет. Так должно быть.
У меня фото имеют запись вида:
Код:
WinStyle (01).jpg
WinStyle (02).jpg
...
Я так думаю фото с цифрами 01-09 попадать в случайные числа не будут. Можно поправить скрипт? Или я ошибаюсь?
|
Цитата:
Цитата Pozia
ничего подобного, ошибки нет. Так должно быть. »
|
В моём коде ошибка с кавычками. Была) Поправил.
Цитата:
Цитата Pozia
Я так думаю фото с цифрами 01-09 попадать в случайные числа не будут. Можно поправить скрипт? Или я ошибаюсь? »
|
Специально для того, чтобы фото с цифрами 01-09 попадали, используется StringFormat() в коде Creat0R'а (у меня это по-другому, но я StringFormat не знаю). Без нулей было бы ещё проще (на 1 функцию):
Код:
Run("WinstyleMonitor.exe -LP '%Windir%\Web\Wallpaper\WinStyle (" & Round(Random(1, 69))) & ").jpg'")
|
проверил только что, не работает не один скрипт, даже если вот так записать в автоит без случайных чисел:
Код:
Run("WinstyleMonitor.exe -LP '%Windir%\Web\Wallpaper\WinStyle (10).jpg'")
exit
не работает.
Цитата:
Цитата Creat0R
тем более в примере ошибка с кавычками »
|
"WinstyleMonitor.exe -LP %Windir%\Web\Wallpaper\WinStyle (10).jpg"
так через батник тоже не работает, а так:
Код:
WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (10).jpg"
работает через батник
|
Цитата:
Цитата Pozia
ничего подобного, ошибки нет »
|
Я это кажется писал Coutty ;)
Цитата:
Цитата Pozia
не работает не один скрипт »
|
Потому что нужно не одиночные кавычки, а двойные:
|
Ребята, благодарствую!!! Все работает на отлично!!!
Creat0R, а такое через батник возможно сделать? Я не подумал сразу, через батник удобнее, если это конечно возможно
|
Цитата:
Цитата Pozia
такое через батник возможно сделать? »
|
Возможно.
|
а не подскажете как? не хочется тему создавать новую такую же, только другом разделе
|
Примерно так:
Код:
$sBat_Content = _
'@Echo Off' & @CRLF & _
'Set iRandom=0' & @CRLF & _
'Call :Random 1 69' & @CRLF & _
'If %iRandom% LSS 10 Set iRandom=0%iRandom%' & @CRLF & _
'Start WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle %iRandom%.jpg"' & @CRLF & _
'GoTo :EOF' & @CRLF & _
':Random' & @CRLF & _
':Loop' & @CRLF & _
'Set /A Rnd=%Random:~0,1%+%Random:~-2%' & @CRLF & _
'If %Rnd% LSS %1 GoTo :Loop' & @CRLF & _
'If %Rnd% GTR %2 GoTo :Loop' & @CRLF & _
'Set iRandom=%Rnd%'
$sBat_File = @ScriptDir & "\BatFile.bat"
$hFile = FileOpen($sBat_File, 2)
FileWrite($hFile, $sBat_Content)
FileClose($hFile)
Run($sBat_File)
|
Creat0R, не. скриптом автоит как то проще. Спасибо еще раз! :)
|
Creat0R, по определенным причинам ваш скрипт не подходит. Хотелось бы его модифицировать так чтобы скрипт создавал батник содержания:
Код:
WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (21).jpg"
и цифра в нем всегда бы была случайна в нужном мне интервале
|
Цитата:
Цитата Pozia
по определенным причинам ваш скрипт не подходит »
|
Можно узнать по каким, если не секрет конечно? :)
Цитата:
Цитата Pozia
Хотелось бы его модифицировать так чтобы скрипт создавал батник содержания »
|
А в чём сложность, добавить круглые скобки?
|
Цитата:
Цитата Creat0R
Можно узнать по каким, если не секрет конечно? »
|
конечно. Моя проблема обсуждается здесь . Mr dUSHA пока не ответил но видимо дело в длине команды. Скрипт почему то портит выполнение в будущем ключа реестра WinstyleMonitor.exe и картинка всегда растягивается. Если запустить команду из батника:
Код:
WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (21).jpg"
то все путем.
Цитата:
Цитата Creat0R
А в чём сложность, добавить круглые скобки? »
|
наверно вы меня не так поняли. Мне нужно чтобы скрипт не сам выполнял команду а создавал батник со случайной цифрой, а уж батник я запущу руками, и думаю проблема должна исчезнуть.
|
Цитата:
Цитата Pozia
видимо дело в длине команды »
|
Нет связи, что с батника, что с AutoIt-скрипта, ограничение от этого не исчезнет :)
Возможно нужно расширить переменную?
Код:
Run('WinstyleMonitor.exe -LP "' & @WindowsDir & '\Web\Wallpaper\WinStyle (' & StringFormat('%02.f', Round(Random(1, 69))) & ').jpg"')
Цитата:
Цитата Pozia
Мне нужно чтобы скрипт не сам выполнял команду а создавал батник со случайной цифрой, а уж батник я запущу руками »
|
Так ведь скрипт создаёт батник, а запуск делается одной строчкой «Run», убираем её и всё :)
|
Цитата:
Цитата Creat0R
Так ведь скрипт создаёт батник, а запуск делается одной строчкой «Run», убираем её и всё »
|
тупанул я. я говорил о первом скрипте что вы сделали. А последний создает нерабочий батник. При его отработке картинка в логоне сбивается по дефолту. Может поправте его как нить? Или есть идей сделать по другому. Пусть скрипт создает батник только со строчкой:
Код:
WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (21).jpg"
и при каждом запуске автоит скрипта он бы создавал новый батник с новой цифрой. А в самом батнике нужна только обозначенная команда
Цитата:
Цитата Creat0R
Возможно нужно расширить переменную? »
|
это проверю после выходных, нужно систему сносить. на этой уже все испорчено )
|
Цитата:
Цитата Pozia
я говорил о первом скрипте что вы сделали »
|
Первый скрипт не создаёт батника :dont-know .
Цитата:
Пусть скрипт создает батник только со строчкой
|
Неужели так сложно адаптировать скрипты в этой теме под нужные требования?
|
Цитата:
Цитата Creat0R
Неужели так сложно адаптировать скрипты в этой теме под нужные требования? »
|
если со скриптами на Вы и шепотом то сложновато простым подбором команд что то сделать...
Цитата:
Цитата Creat0R
$sBat_File = @DesktopDir & "\BatFile.bat" »
|
Путь @DesktopDir не понял что значит. Поменял на @ScriptDir и все заработало :) Спасибо!
|
Цитата:
Цитата Pozia
Путь @DesktopDir не понял что значит »
|
Это каталог рабочего стола.
|
Цитата:
Цитата Creat0R
Это каталог рабочего стола. »
|
ща включил комп и увидел батник на рабочем столе. Спасибо за помощь еще раз :)
|
Скрипт
Цитата:
Цитата Creat0R
Потому что нужно не одиночные кавычки, а двойные:
Код:
Run('WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (' & StringFormat('%02.f', Round(Random(1, 69))) & ').jpg"') »
|
все таки работает как надо. Проблема в другом была.
Появилась у меня еще хотелка. Если не сложно помогите. Хотелось бы чтобы интервал случайных чисел задавался не вручную а определялся скриптом сам если ему предварительно указать папку где лежат фото, и по количеству файлов скрипт определял интервал. Или же можно без привязки к числам чтобы в коде:
Код:
WinstyleMonitor.exe -LP "%Windir%\Web\Wallpaper\WinStyle (10).jpg"
имя самой картинки бралось случайным образом из указанной заранее папки.
|
Время: 10:10.
© OSzone.net 2001-