Windows Script Host

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Windows Script Host

Сообщение Batya »

Хочеться начать тему для обмена опытом написания скриптов на Windows Script Host.
В который раз обращаюсь к Volniy - сделай, наконец, релиз своего TCWSHelp и выложи его на wincmd.ru! Это же супер продукт!

Помимо воззваний прошу совета.
Ситуация - запущен скрипт, который постоянно висит в памяти, для сканирования некоторого состояния в папке на диске. Как запуском другого скрипта корретно завершить работу первого?
В первом скрипте организован цикл

Код: Выделить всё

Do While MyKey
  ...
Loop
MyKey в цикле не меняется.
Как вторым скриптом заставить штатно выйти из цикла, а не убивать процесс?
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Я бы просто читал MyKey или какое-другое условие прямо с диска или другого заведенного места. MyKey можно записать и вручную и скриптом

Код: Выделить всё

Do While MyKey 
  ... 
прочитать MyKey из файла
Loop
---
а насчет TCHelper'a - не ждать релиза, а в принудительном порядке завести страничку под него на сайте, выложить туда очередную бету и отдать пароль от странички Volniy, тем более, что сама бета там и так лежит.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Lev
прочитать MyKey из файла
ОК. Только это наверное не самое оптимальное решение с точки зрения ресурсозатрат (накладно каждый раз читать файл)?
Можно, конечно, еще в реестр писать. Но тоже не очень мне нравится - плодить лишний мусор.
У кого-нибудь еще есть идеи?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

а насчет TCHelper'a - не ждать релиза, а в принудительном порядке завести страничку под него на сайте, выложить туда очередную бету и отдать пароль от странички Volniy, тем более, что сама бета там и так лежит.
Volniy
Неужели действительно придеться так сделать? ;)
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Можно по-реже читать

Код: Выделить всё

Do While MyKey 
counter=counter+1
  ... 
if counter=мульён then
counter=0
прочитать MyKey из отведенного места
end if
Loop
GeNtlE
Сообщения: 141
Зарегистрирован: Чт дек 16, 2004 12:36
Откуда: Россия, Чита
Контактная информация:

Сообщение GeNtlE »

А можно создать файл в памяти и читать MyKey оттуда?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

GeNtlE
создать файл в памяти
Это как?
GeNtlE
Сообщения: 141
Зарегистрирован: Чт дек 16, 2004 12:36
Откуда: Россия, Чита
Контактная информация:

Сообщение GeNtlE »

Если бы я знал, как это делается скриптами - не стал бы спрашивать, но если существует возможность использования WinAPI'шных функций из скриптов, то, я думаю, это возможно...
Вот, например, у нас есть CreateFileMapping... И есть вот MSDN'а кусок.
С этим можно что-нибудь сделать? На обычных языках - реализуемо. На скриптах - не знаю,.. но хочу разобраться - Интересно.
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Volniy
Неужели действительно придеться так сделать? ;)
Ну что ж это такое, в самом-то деле :(. На старом форуме SAM "меня без меня женил", а сча и вы туда же, блин.
У меня есть (был, по крайней мере, может уже и не пашет) свой аккаунт, мне SAM его выбил когда-то. Если хоть с десяток человек считает, что есть смысл выкладывать - я выложу. Насчет дальнейшей поддержки - фиг его знает, уж как получится., не могу гарантировать, что уделю этому проекту много времени.

ЗЫ А 10-ую бетку я уже где-нибудь тут светил?

==

Пардон, забыл я по теме высказаться. imho реестр вполне подойдет для обмена информацией между скриптами, чтение и запись в него это фактически чтение из/в память. Тоесть это будет очень быстро. А чтобы не грузить бесконечным циклом проц, надо поставить в цикле задержку между проверками

Код: Выделить всё

WScript.Sleep 200
Есть одна проблема: при ошибке работы скрипта в Реестре может остаться значение и оно будет мешать дальнейшей работе скриптов. Тоесть наадо не забыть это значение инициализировать/удалить.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Если хоть с десяток человек считает, что есть смысл выкладывать - я выложу
первый нах :) выкладывай
Даже если сам TCHelper заморожен, то как появится страничка, так пойдет новая волна обсуждений, пойдут новые скрипты. Буржуи тоже скриптов подкинут. В общем, всем польза будет.
А какие предубеждения против выкладывания?
А 10-ую бетку я уже где-нибудь тут светил?
Не видел, ждём-с
_Elzor
Сообщения: 33
Зарегистрирован: Ср авг 31, 2005 13:42
Откуда: Орск

Сообщение _Elzor »

Второй.
Скрипты сам использую редко, но иногда хочется что-нибуть интегрить в TC...
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Lev писал(а):А какие предубеждения против выкладывания?
Да сами знаете, сколько всякого сомнительного там выкладывается. Так еще и мою недоделанную штуковину туда? Опять-же, про буржуев, им же надо на Английском доку написать, а это как-никак не "My name is Nick. I am eleven years old etc". Хотя, может и обойдутся они без доки :)

==

Бессоница, конечно, вещь паршивая, но иногда имеет и положительный побочный эффект. Взял вот, да и выложил десятую бетку на wincmd.ru.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Урааа!!!
Это случилось!
Я думаю, понятно, что мой голос также можно приплюсовать :)

==
ОК. Значит буду реестр читать/писать.
А насчет Sleep - это понятно. У меня изначально это было. Просто это не относится к моему вопросу, поэтому не писал.

==
Volniy
Еще раз спасибо за Helper!
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Volniy
А в какой ветке реестра корректней создать параметр? (Не хочеться создавать где попало.)
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Batya писал(а):Volniy
А в какой ветке реестра корректней создать параметр? (Не хочеться создавать где попало.)
Я думаю, что это без разницы. Ну вот хотя бы и в HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings. Только имя параметру оригинальное придумай на всякий случай :wink:
Ответить