Создать скрипт

Часть 1. Создание десяти скриптов базового уровня

30 игровых скриптов, которые можно написать на языке PHP

Дуэйн О’Брайен
Опубликовано 12.08.2009

Серия контента:

Этот контент является частью # из серии # статей: 30 игровых скриптов, которые можно написать на языке PHP

https://www.ibm.com/developerworks/ru/views/global/libraryview.jsp?series_title_by=30+игровых+скриптов,+которые+можно+написать+на+языке+php Следите за выходом новых статей этой серии.

Этот контент является частью серии:30 игровых скриптов, которые можно написать на языке PHP

Следите за выходом новых статей этой серии.

Начало работы

В качестве гейммастера/ведущего и разработчика игр мне часто приходится писать небольшие утилиты и скрипты, которые помогают мне при руководстве играми, а также при планировании игр и при непосредственном участии в них. Иногда мне необходима быстрая подсказка. В другой раз мне может потребоваться большое количество имен для NPC-персонажей (Non-Player Character – персонаж, не управляемый игроком). Время от времени мне приходится работать с числами, подсчитывать некоторые шансы или интегрировать в игру те или иные головоломки. Реализация многих из этих задач существенно упрощается, если заблаговременно приложить определенные усилия к написанию соответствующего скрипта.

В этой статье анализируется 10 фундаментальных скриптов, которые могут применяться в играх различного типа. Прилагаемый к данной статье архив программного кода (далее – Архив) содержит полный исходный текст для каждого описываемого в ней скрипта. Кроме того, вы можете увидеть все эти скрипты «в действии» на Web-сайте: chaoticneutral.

Мы «пробежимся» по этим скриптам достаточно быстро. Такие темы как поиск хостинга или настройка сервера в данной статье рассматриваться не будут. Сегодня существует множество Web-хостов, которые предлагают PHP-дистрибутивы; в частности, инсталлятор XAMPP удобен в том случае, если вы хотите сформировать свою собственную среду. Мы не будем тратить много времени на разговоры о наилучших методиках PHP-разработки или о принципах проектирования игр. При создании рассматриваемых скриптов к ним предъявлялись несколько иные требования – эти скрипты должны были быть простыми для понимания, легкими в использовании и быстрыми в усвоении.

Базовый «кидатель кубика» (die roller)

Для многих игр и игровых систем необходима игральная кость (так называемый «кубик»). Давайте начнем с самого простого варианта: с кидания одного шестигранного кубика. По существу, между киданием шестигранного кубика и выбором случайного числа в промежутке от 1 до 6 нет никаких различий. В PHP эта операция реализуется достаточно просто: echo rand(1,6);.

Во многих случаях этого будет вполне достаточно. Но если мы имеем дело с азартными играми, то нам нужно что-либо получше. PHP предоставляет более эффективный генератор случайных чисел: mt_rand(). Не вдаваясь в детальные различия между этими двумя генераторами скажем, что генератор случайных чисел mt_rand() работает быстрее и лучше: echo mt_rand(1,6);. Конечно, нужно оформить это в виде функции (листинг 1).

Листинг 1. Использование функции с генератором случайных чисел mt_rand()

function roll () { return mt_rand(1,6); } echo roll();

Далее, тип кубика, который мы собираемся кинуть, можно передать в эту функцию в виде параметра (листинг 2).

Листинг 2. Передача типа кубика как параметра

function roll ($sides) { return mt_rand(1,$sides); } echo roll(6); // roll a six-sided die echo roll(10); // roll a ten-sided die echo roll(20); // roll a twenty-sided die

Теперь, в зависимости от наших потребностей, мы сможем реализовать бросание нескольких кубиков одновременно (возвращая массив результатов) или же бросание нескольких кубиков разного типа. Для большинства подобных задач мы сможем воспользоваться нашим простым скриптом.

Генератор случайных имен

Если вам приходится руководить играми, сочинять сюжеты или одновременно создавать группу персонажей, то иногда у вас могут возникать трудности с придумыванием новых имен. Рассмотрим простой генератор случайных имен, который вы сможете использовать для решения этой задачи. Для начала создадим два простых массива — один с именами, другой с фамилиями (листинг 3).

Листинг 3. Два простых массива с именами и с фамилиями

$male = array( «William», «Henry», «Filbert», «John», «Pat», ); $last = array( «Smith», «Jones», «Winkler», «Cooper», «Cline», );

После этого мы сможем выбирать случайным образом по одному элементу из каждого массива: echo $male . ‘ ‘ . $last;. Чтобы за один прием сформировать группу из нескольких персонажей, мы можем просто перемешать содержимое массивов и выбрать необходимое количество имен (листинг 4).

Листинг 4. Перемешивание массивов имен и фамилий

shuffle($male); shuffle($last); for ($i = 0; $i <= 3; $i++) { echo $male . ‘ ‘ . $last; }

Приняв эту базовую концепцию, мы сможем создавать текстовые файлы для хранения наших имен и фамилий. Если в каждую строку своего текстового файла мы помещаем по одному имени (фамилии), то мы сможем легко секционировать содержимое этого файла с помощью символов «разрыв строки» с целью последующего построения наших исходных массивов (листинг 5).

Листинг 5. Создание текстовых файлов для имен и фамилий

$male = explode(‘\n’, file_get_contents(‘names.female.txt’)); $last = explode(‘\n’, file_get_contents(‘names.last.txt’));

Создайте или найдите файлы с набором подходящих имен/фамилий (два таких файла включены в Архив), после чего все потенциальные проблемы с именами будут решены.

Генератор сценариев

Используя те же базовые принципы, на которых построен генератор имен, мы можем создать так называемый генератор сценариев. Такой генератор полезен в ролевых играх и в других ситуациях, где необходимо придумать псевдослучайный набор обстоятельств, который может использоваться для разыгрывания ролей, импровизации, написания сюжета и т.д. Одна из моих любимых игр, Paranoia, сопровождается пакетом GM Pack, в состав которого входит инструмент Mission Blender. Инструмент Mission Blender позволяет быстро скомпоновать полную миссию по результатам «кидания кубика». Давайте создадим свой собственный генератор сценариев.

За основу примем следующий сценарий: Вы просыпаетесь и обнаруживаете себя заблудившимся в лесу. Вы знаете, что вам необходимо добраться до Нью-Йорка, но не знаете почему. Неподалеку вы слышите лай собак и звуки враждебной погони. Вам холодно, вы дрожите, и у вас нет оружия. Каждое предложение в этом сценарии представляет его определенный аспект:

  • «Вы просыпаетесь и обнаруживаете себя заблудившимся в лесу» – установка исходного состояния.
  • «Вы знаете, что вам необходимо добраться до Нью-Йорка» – описание цели.
  • «Вы слышите лай собак» – представление противника.
  • «Вам холодно, вы дрожите, и у вас нет оружия» – добавление осложняющих факторов.

Точно так же, как мы создавали текстовые файлы для наших имен и фамилий, начните с создания отдельного текстового файла для каждого аспекта – исходного положения, цели, противников и осложнений. Соответствующие эталонные файлы включены в Архив. После того как мы будем располагать этими файлами, код для генерации сценария будет выглядеть почти так же, как код для генерации имен/фамилий (листинг 6).

Листинг 6. Генерация сценария

$settings = explode(«\n», file_get_contents(‘scenario.settings.txt’)); $objectives = explode(«\n», file_get_contents(‘scenario.objectives.txt’)); $antagonists = explode(«\n», file_get_contents(‘scenario.antagonists.txt’)); $complications = explode(«\n», file_get_contents(‘scenario.complications.txt’)); shuffle($settings); shuffle($objectives); shuffle($antagonists); shuffle($complications); echo $settings . ‘ ‘ . $objectives . ‘ ‘ . $antagonists . ‘ ‘ . $complications . «<br />\n»;

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

Построитель карточной колоды и тасователь карточной колоды

Если вы играете в карточные игры и интересуетесь созданием соответствующих скриптов, мы можем соединить «построитель» карточной колоды со встроенным «тасователем» этой колоды. Для начала построим базовую колоду из стандартных игральных карт. Мы должны создать два массива, один из которых предназначен для хранения мастей, а второй – для хранения достоинств карт. Это обеспечит нам необходимую гибкость впоследствии, если мы захотим добавить другие масти или типы карт (листинг 7).

Листинг 7. Построение базовой карточной колоды

$suits = array ( «Spades», «Hearts», «Clubs», «Diamonds» ); $faces = array ( «Two», «Three», «Four», «Five», «Six», «Seven», «Eight», «Nine», «Ten», «Jack», «Queen», «King», «Ace» );

Теперь построим массив, который будет содержать все карты колоды. Мы можем сделать это достаточно просто – с использованием двух циклов foreach foreach (листинг 8).

Листинг 8. Построение массива карточной колоды

$deck = array(); foreach ($suits as $suit) { foreach ($faces as $face) { $deck = array («face»=>$face, «suit»=>$suit); } }

После того как мы построили массив карточной колоды, мы можем легко перетасовать колоду и вытянуть карту случайным образом (листинг 9).

Листинг 9. Перемешивание карточной колоды и вытаскивание случайной карты

shuffle($deck); $card = array_shift($deck); echo $card . ‘ of ‘ . $card;

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

Калькулятор шансов: вытягивание карты

Поскольку мы построили карточную колоду определенным образом (а именно, с раздельным отслеживанием достоинства и масти для каждой карты), теперь мы можем программным способом использовать эту колоду для выполнения тех или иных операций, например, для вычисления шансов получения определенной карты. Начнем с комплектования двух рук по пяти карт в каждой (листинг 10).

Листинг 10. Комплектование двух рук по пяти карт в каждой

$hands = array(1 => array(), 2=>array()); for ($i = 0; $i < 5; $i++) { $hands = implode(» of «, array_shift($deck)); $hands = implode(» of «, array_shift($deck)); }

Затем мы можем посмотреть на колоду, чтобы определить, сколько карт осталось и каковы шансы на вытягивание определенной карты. Определение количества оставшихся карт не составляет никаких трудностей: это количество элементов в массиве $deck. Для вычисления шансов на вытягивание определенной карты нам необходима функция, позволяющая перебрать всю колоду и оценить оставшиеся карты на соответствие (листинг 11).

Листинг 11. Вычисление шансов на вытягивание определенной карты

function calculate_odds($draw, $deck) { $remaining = count($deck); $odds = 0; foreach ($deck as $card) { if ( ($draw == $card && $draw == $card ) || ($draw == » && $draw == $card ) || ($draw == $card && $draw == » ) ) { $odds++; } } return $odds . ‘ in ‘ $remaining; }

Теперь мы можем выбрать карту, которую мы пытаемся вытянуть. Для упрощения этой задачи создадим массив, представляющий определенную карту. Таким образом мы можем искать любую нужную нам карту (листинг 12).

Листинг 12. Поиск определенной карты

$draw = array(‘face’ => ‘Ace’, ‘suit’ => ‘Spades’); echo implode(» of «, $draw) . ‘ : ‘ . calculate_odds($draw, $deck);

Мы также можем искать карту с определенным достоинством или определенной масти (листинг 13).

Листинг 13. Поиск карты с определенным достоинством или определенной масти

$draw = array(‘face’ => », ‘suit’ => ‘Spades’); $draw = array(‘face’ => ‘Ace’, ‘suit’ => »);

Простой дилер для игры в покер

Теперь, когда у нас есть построитель карточной колоды и механизмы для определения шансов на вытягивание определенных карт, мы можем создать простого дилера (раздатчика карт), чтобы попрактиковаться в наборе руки. В этом примере мы построим дилера для варианта покера с пятью картами и заменой (так называемый Five Card Draw Poker). Дилер сдает игроку пять карт из колоды. Вы указываете, от каких карт хотите отказаться (по номеру карты), после чего дилер заменяет эти карты другими картами из колоды. В данном примере мы не будем устанавливать пределы на количество заменяемых карт или правила взаимоотношений между участниками игры, хотя для вас это может оказаться полезным упражнением.

Сгенерируйте и перетасуйте карточную колоду (как было описано в предыдущем разделе), после чего сформируйте одну руку из пяти карт. Отобразите эти карты по их индексу в массиве таким образом, чтобы можно было указать, какие карты требуется заменить. Для указания на заменяемые карты можно также использовать флажки (checkbox) (листинг 14).

Листинг 14. Использование флажков (checkbox) для указания на заменяемые карты

foreach ($hand as $index =>$card) { echo «<input type=’checkbox’ name=’card’> » . $card . ‘ of ‘ . $card . «<br />»; }

Затем просмотрите входной массив array $_POST, чтобы увидеть, какие карты были отмечены для замены (листинг 15).

Листинг 15. Просмотр входного массива

$i = 0; while ($i < 5) { if (isset($_POST)) { $hand = array_shift($deck); } }

С помощью этого скрипта вы сможете «набить руку» — намеренная игра слов — на оптимальные действия при определенных комбинациях карт.

Игра «Виселица»

Игра «Виселица» (или «Палач») – это, по существу, игра в отгадывание слов. Ведущий («палач») задумывает слово определенной длины, а игрок должен отгадать это слово, поочередно предлагая по одной букве (ограниченное число раз). Если игрок предложил букву, которая встречается в загаданном слове, то ведущий заполняет все местоположения этой буквы. После заданного количества неправильных догадок (как правило, шести), игрок проигрывает. Чтобы скомпоновать шаблон для игры в «Виселицу», мы сначала должны создать список слов. Сделаем этот список его в виде простого массива (листинг 16).

Листинг 16. Создание списка слов

$words = array ( «giants», «triangle», «particle», «birdhouse», «minimum», «flood» );

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

Теперь, когда у нас есть список слов, мы должны выбрать одно из них по случайному закону, отобразить пустую позицию для каждой буквы этого слова и приступить к приему догадок. На всем протяжении игры мы должны отслеживать правильные и неправильные догадки. Мы решим эту задачу максимально просто – посредством сериализации массивов догадок и продвижения их вместе с каждой очередной догадкой. Если бы мы захотели воспрепятствовать мошенничеству посредством просмотра исходного текста страницы, то нам следовало бы сделать нечто более защищенное.

Создайте массив для хранения букв и правильных/неправильных догадок. Для правильных догадок мы будем заполнять массив буквами в качестве идентификаторов и точками в качестве значений (листинг 17).

Листинг 17. Построение массивов для хранения букв и догадок

$letters = array(‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’, ‘p’,’q’,’r’,’s’,’t’,’u’,’v’,’w’,’x’,’y’,’z’); $right = array_fill_keys($letters, ‘.’); $wrong = array();

Теперь нам нужно написать небольшой фрагмент программного кода для оценки догадок и демонстрации слова по ходу игры (листинг 18).

Листинг 18. Оценка догадок и демонстрация хода игры

if (stristr($word, $guess)) { $show = »; $right = $guess; $wordletters = str_split($word); foreach ($wordletters as $letter) { $show .= $right; } } else { $show = »; $wrong = $guess; if (count($wrong) == 6) { $show = $word; } else { foreach ($wordletters as $letter) { $show .= $right; } } }

В Архиве демонстрируется сериализация массивов догадок и их продвижение от догадки к догадке.

Помощник для разгадывания кроссвордов

Я прекрасно знаю, что подобный помощник – это дурной тон, но иногда он все же может потребоваться. Например, при разгадывании кроссворда вы зашли в тупик, пытаясь отыскать пятибуквенное слово, которое начинается с буквы C и заканчивается буквой T. Используя список слов, который мы создали ранее для игры в «Виселицу», мы можем легко находить слова, соответствующие определенному шаблону. Во-первых, определите способ передачи слов. Для упрощения этой задачи замените недостающие буквы точками: $guess = «c…t»;. Поскольку регулярные выражения рассматривают точку как одиночный символ, мы можем с легкостью пройти по списку слов в поисках совпадения (листинг 19).

Листинг 19. Прохождение по списку слов

foreach ($words as $word) { if (preg_match(«/^» . $_POST . «$/»,$word)) { echo $word . «<br />\n»; } }

При условии достаточно высокого качества нашего списка слов и достаточной точности наших догадок мы сможем получить приемлемый список слов для последующей проверки на возможные совпадения. После этого вам останется решить, какое из слов – «chest» (грудная клетка) и «cheat» (жульничество) – лучше подходит на роль слова из пяти букв, означающего «нарушение правил игры».

Механизм для игры Mad Libs

Mad Libs – это игра в слова, в которой игрок берет короткий рассказ и заменяет ключевые типы слов другими словами того же типа, чтобы создать новую, более глупую версию той же истории. Возьмем следующий текст: «I was walking in the park when I found a lake (Я шел по парку и нашел озеро). I jumped in and swallowed too much water (Я нырнул в озеро и проглотил слишком много воды). I had to go to the hospital (Мне пришлось пойти в больницу)». Начните заменять типы слов различными токенами. Начинайте и завершайте каждый токен подчеркиванием, чтобы предотвратить случайные совпадения строк (листинг 20).

Листинг 20. Замена типов слов символами слов

$text = «I was _VERB_ing in the _PLACE_ when I found a _NOUN_. I _VERB_ed in, and _VERB_ed too much _NOUN_. I had to go to the _PLACE_.»;

После этого создайте несколько списков базовых слов. В этом примере мы не будем давать большую волю своей фантазии (листинг 21).

Листинг 21. Создание нескольких списков базовых слов

$verbs = array(‘pump’, ‘jump’, ‘walk’, ‘swallow’, ‘crawl’, ‘wail’, ‘roll’); $places = array(‘park’, ‘hospital’, ‘arctic’, ‘ocean’, ‘grocery’, ‘basement’, ‘attic’, ‘sewer’); $nouns = array(‘water’, ‘lake’, ‘spit’, ‘foot’, ‘worm’, ‘dirt’, ‘river’, ‘wankel rotary engine’);

Теперь мы можем многократно оценивать текст на предмет возможной замены токенов по мере необходимости (листинг 22).

Листинг 22. Оценка текста

while (preg_match(«/(_VERB_)|(_PLACE_)|(_NOUN_)/», $text, $matches)) { switch ($matches) { case ‘_VERB_’ : shuffle($verbs); $text = preg_replace($matches, current($verbs), $text, 1); break; case ‘_PLACE_’ : shuffle($places); $text = preg_replace($matches, current($places), $text, 1); break; case ‘_NOUN_’ : shuffle($nouns); $text = preg_replace($matches, current($nouns), $text, 1); break; } } echo $text;

Вполне очевидно, что это простой и достаточно сырой пример. Чем точнее будут наши списки слов и чем больше времени мы потратим на создание нашего базового текста, тем лучше будут наши результаты. Мы уже использовали текстовые файлы для создания списков имен и списков базовых слов. Используя тот же самый принцип, мы можем создавать списки слов, разбитые по типам, и использовать их для создания более разнообразных игр типа Mad Libs.

Механизм для игры в лото

Получение при игре в лото шести правильных номеров – это, мягко говоря, статистически маловероятный результат. Тем не менее, многие люди по-прежнему платят деньги, чтобы поиграть в эту игру. Если вам нравятся числа, то вас может заинтересовать наблюдение за тенденциями. Создадим скрипт, который будет отслеживать выигрышные номера и предоставит шесть реже всего выпадающих номеров в нашем списке.

(Отказ от ответственности. Этот скрипт не поможет вам выигрывать в лото, так что не тратьте деньги на билеты. Он предназначен исключительно для развлечения).

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

Листинг 23. Сохранение выигрышных номеров лото в текстовом файле

$picks = array( array(‘6′, ’10’, ’18’, ’21’, ’34’, ’40’), array(‘2’, ‘8’, ’13’, ’22’, ’30’, ’39’), array(‘3’, ‘9’, ’14’, ’25’, ’31’, ’35’), array(’11’, ’12’, ’16’, ’24’, ’36’, ’37’), array(‘4’, ‘7’, ’17’, ’26’, ’32’, ’33’) );

Вполне очевидно, что этого недостаточно для выявления статистических закономерностей. С другой стороны, этого вполне достаточно для иллюстрации основных принципов.

Создайте базовый массив для хранения диапазона выбираемых чисел. Например, если мы выбираем числа в диапазоне от 1 до 40 (т. е. $numbers = array_fill(1,40,0);, то затем будем перебирать выигрышные номера и увеличивать значения соответствующих элементов массива (листинг 24).

Листинг 24. Прохождение по выпавшим значениям

foreach ($picks as $pick) { foreach ($pick as $number) { $numbers++; } }

И, наконец, отсортируйте массив по возрастанию значений. В результате наименее выбираемые числа должны попасть в начало массива (листинг 25).

Листинг 25. Сортировка чисел по частоте их выпадения

asort($numbers); $pick = array_slice($numbers,0,6,true); echo implode(‘,’, array_keys($pick));

Регулярно добавляя в наш текстовый файл с выпавшими номерами очередные выпавшие номера, мы сможем оценить тенденцию выпадения номеров в долгосрочной перспективе и увидеть, как часто выпадают те или иные номера.

Эта статья является полезным ресурсом для всех, кто хотел бы приступить к использованию языка PHP для обогащения своих игровых возможностей. Во второй статье серии под названием «30 игровых скриптов, которые можно написать на языке PHP» мы на базе описанного в этой статье кода создадим более совершенные скрипты, которые предоставят нам дополнительные возможности.

Ресурсы для скачивания

  • Оригинал статьи: 30 game scripts you can write in PHP, Part 1: Creating 10 fundamental scripts (EN).
  • Первое знакомство с XAMPP (EN): XAMPP – простой в установке дистрибутив Apache, в состав которого также входят продукты MySQL, PHP и Perl.
  • Опробуйте действующие примеры (EN) всех скриптов.
  • Бюро переписи США (EN) – обширный источник информации для списков имен.
  • Базовая информация об игре Paranoia (EN).
  • Ознакомьтесь с основными правилами игры в покер (EN).
  • Некоторые удобные списки слов (EN). Дополнительные ресурсы на Web-сайте ManyThings.org (EN).
  • Посетите официальный Web-сайт игры Mad Libs (EN).
  • Прочитайте статью Apache V2 and PHP Installation (EN), в которой описывается, как получить дистрибутивы Apache V2 и PHP V4.x (поддерживается использование PHP V5.x), совместно работающие в среде Linux.
  • В статье «Подключение PHP-приложений к серверу Apache Derby» (EN) показано, как установить и сконфигурировать PHP в среде Windows (некоторые шаги применимы и к среде Linux).
  • Прочитайте статью «Learning PHP, Part 1» (EN) (Изучение PHP, часть 1), в которой излагаются базовые сведения по PHP. Затем прочитайте Часть 2 (EN) этой статьи, чтобы узнать, как загрузить файлы на локальные хосты с помощью DOM и SAX. В завершающей эту серию Части 3 описывается потоковое приложение.
  • Обратитесь к документу Руководство по PHP (EN), чтобы узнать больше об объектах данных в PHP и об их возможностях.
  • PHP.net (EN): центральный ресурс для PHP-разработчиков.
  • Ознакомьтесь со «списком рекомендованной литературы по PHP (EN).»
  • Для совершенствования навыков программирования на PHP рекомендуем посетить раздел ресурса IBM developerWorks под названием Ресурсы проекта PHP (EN).
  • Прослушайте интересные интервью и дискуссии для разработчиков ПО: подкасты ресурса developerWorks (EN).
  • Используете базу данных с PHP? Ознакомьтесь с продуктом Zend Core for IBM (EN) – это простая в установке и применении, готовая к использованию среда для разработки и эксплуатации приложений на языке PHP, поддерживающая IBM DB2 V9.
  • Посетите раздел Web-сайта developerWorks, посвященный продуктам с открытым кодом – к вашим услугам обширный ассортимент справочной информации, инструментов и обновлений, который поможет осуществлять разработки на основе технологий с открытым кодом и использовать их вместе с продуктами IBM.
  • Усовершенствуйте свой следующий проект с открытым кодом с помощью ознакомительных версий программных продуктов IBM (EN), которые можно загрузить из Интернета или получить на DVD-диске.
  • Загрузите ознакомительные версии программных продуктов IBM (EN) и приобретите опыт работы с инструментами разработки приложений и продуктами связующего уровня семейств DB2®, Lotus®, Rational®, Tivoli® и WebSphere®.

Формат файла .SCRIPT

Ручное редактирование Реестра Windows

Если наша система не справляется с расширением .SCRIPT и подвели все автоматические и полуавтоматические методы обучения его этому искусству, остается ручное редактирование реестра Windows. Этот реестр хранит всю информацию, касающуюся рабоы нашей операционной системы, в том числе соединения расширений файлов с программами для их обслуживания. Команда REGEDIT вписанная в окне „поиск программ и файлов” или „запустить в случае старших версий операционной системы, предоставляет нам доступ к реестру нашей операционной системы. Все операции, проведенные в реестре (даже не очень сложные, касающееся расширения файла .SCRIPT) имеют значительное влияние на работу нашей системы, поэтому прежде чем проводить какие-либо модификации следует убедится, что сделана копия актуального реестра. Интересующий нас раздел — это ключ HKEY_CLASSES_ROOT. Следующая инструкция показывает, шаг за шагом, как модифицировать реестр, а конкретно запись в реестре, содержащую информацию о файле .SCRIPT.

Шаг за шагом

  • Нажмите кнопку “start”
  • В окне „найти программы и файлы” (в старших версиях системы Windows это окно „Запустить”) впишите команду „regedit” а затем утвердите операцию клавишей „ENTER”. Эта операция запустит системный редактор реестра. Этот инструмент позволит не только просмотреть существующие записи, но также провести их модификацию, добавление или удаление вручную. В связи с тем, что реестр системы Windows ключевой для ее работы, все операции, проводящиеся на ней, следует выполнять рассудительно и сознательно. Неосторожное устранение или модификация несоответственного ключа может необратимо повредить операционную систему.
  • С помощью комбинации клавишей ctr+F или меню Редактирование и опции „Найти” найдите интересующее вас расширение .SCRIPT, вписав его в окне поисковика. Утвердите, нажав OK или с помощью клавиши ENTER.
  • Запасная копия. Чрезвычайно важным является создание запасной копии реестра, прежде чем совершить в нем какие-либо изменения. Каждое изменение имеет влияние на действие нашего компьютера. В крайних случаях ошибочная модификация реестра может привести к невозможности повторного запуска системы.
  • Интересующее Вас значение, касающееся расширения, можно вручную редактировать изменяя ключи, приписанные к найденному расширению .SCRIPT. В этом месте Вы можете также самостоятельно создать нужную запись с расширением а .SCRIPT если такое отсутствует в реестре. Все доступные варианты находятся в подручном меню (правая кнопка мышки) или в меню «Редактирование» после размещения курсора в соответствующем месте на экране.
  • После окончания редактирования записи, касающейся расширения .SCRIPT закройте системный реестр. Введенные изменения войдут в жизнь после повторного запуска операционной системы.

Как написать скрипт: 9-ти шаговая схема создания скрипта с нуля

08 Ноя Как написать скрипт: 9-ти шаговая схема создания скрипта с нуля

Опубликовано: 22:26 В категории: Холодные звонки и продажи по телефону Опубликовал: admin

Как написать скрипт продаж? Таким вопросом задается, наверное, каждый, кто работает в продажах. И это неудивительно — ведь хороший скрипт продаж позволит Вам быстрее и легче привлекать клиентов, поможет менеджерам преодолевать возражения и отвечать на вопросы потенциальных покупателей. Плюсы от использования скрипта очевидны.

Но есть и обратная сторона.

Разработка скрипта продаж — занятие не простое. В статье «3 способа написать и оформить скрипт продаж» я уже делился с Вами своим мнением по поводу подготовки скрипта (электронный формат, бумажный формат).

Сегодня я хочу предложить Вам схему создания скрипта — 9 шаговый алгоритм написания скрипта с нуля (речь идет про написание скрипта холодного звонка. Для других видов звонков алгоритм будет аналогичным с небольшими корректировками). Когда я создаю скрипты продаж для корпоративных клиентов, я сам опираюсь на этот алгоритм.

Я подготовил алгоритм в формате PDF. Скачать его можно бесплатно, разблокировав доступ через (нажать на любую кнопку соцсетей).

Более подробно каждый шаг я описал в этих видео:

Как написать скрипт продаж: шаг 1-5 (видео)

Давайте рассмотрим основные шаги при написании скрипта.

1. Начни с сегментации

Этот шаг (к сожалению, незнакомый большинству) позволяет на начальном этапе разделить базу наших потенциальных клиентов на более перспективных и интересных для нас и на менее интересных. На этом шаге важно определить критерии сегментации для своей ситуации. Например, если я продаю тренинги продаж, то для меня клиент с наличием отдела продаж в компании и необученными сотрудниками будет гораздо интереснее, чем клиент вообще без отдела продаж. Таким образом мы для себя выделяем категории клиентов А, B, C и далее по необходимости для Вашего бизнеса. Более подробно этот важный шаг я разбирал на онлайн-тренинг Скрипты продаж, которые выстреливают (здесь можно посмотреть отчет с тренинга), но думаю логика сегментации Вам понятна.

2. Определи целевое действие

На этом шаге важно спланировать для каждого сегмента клиентов те целевые действия, которые будут нам выгодны. Например, с клиентами категории А мы готовы встречаться на территории клиента (т.к. они наиболее перспективные, интересные для нас. Мы готовы инвестировать свое время в таких клиентов), а с клиентами категории С, к примеру, можно ограничиться подпиской на рассылку.

3. Определи ЛПР

ЛПР — лицо, принимающее решение. Кто в Вашем случае определяет решение о работе с Вами? Часто менеджеры напролом пробиваются к руководителю, не понимая, что решение по их вопросу в компании, вероятно принимает другой человек. Это важный шаг, который напрямую влияет на наполнение нашего скрипта эффективными речевыми оборотами.

4. Наполни таргет-лист

Таргет-лист — это список компаний для привлечения. Я рекомендую иметь небольшой список тех, кому Вы хотите позвонить уже в процессе составления скрипта.

5. Продумай выход на ЛПР

Что Вы скажете секретарю, чтобы он Вас соединил с руководителем. Мне обычно достаточно 2-3 техники чтобы обойти почти любого секретаря. В курсе 10 звонков — 10 продаж я о таких техниках рассказываю.

6. Определи идеальную линию разговора с ЛПР

Представьте, что Ваш разговор проходит идеально гладко. Клиент не возражает. Подумайте, с чего Вы начнете беседу, как утеплите контакт, как будете аргументировать свою позицию. Я обычно выделяю 4 составляющих в этом блоке, о которых расскажу в другой статье (техника «ВУУЗ»).

7. Добавь ветвистость

Скрипт продаж подразумевает разные варианты поведения клиентов. Он может согласиться с Вами сразу (в таком случае сработает Ваша идеальная линия разговора), либо будет отказывать и возражать. На 7 шаге важно предусмотреть возможные отказы и отговорки клиента. Я обычно выделяю возражения универсальные (они могут появиться на любом узле скрипта) и узловые (они могут появиться только на определенном узле. Например, во время установления контакта). Преодолеть любые возражения Вам поможет курс Хакер возражений. Там есть все необходимые приемы для обработки любых возражений.

8. Автоматизируй скрипт

На этом шаге я рекомендую автоматизировать скрипт продаж. Вы можете использовать заготовки для автоматизации (например, я использовал экселевский шаблон в курсе Конструктор скриптов продаж), либо специальные сервисы для автоматизации скриптов (мне нравится СкриптДизайнер).

9. Улучшай!

Следите за конверсией каждого узла, скрипта в целом, пробуйте разные ответы на возражения и способы аргументации. И у Вас получится убойный скрипт продаж!

С уважением, Олег (дружить в ВК, инстаграм)

P.s. Более подробно технологию создания скриптов я разобрал на онлайн-тренинге (точнее — воркшопе) Скрипты продаж, которые выстреливают. Посмотрите подробности о том, как прошло мероприятие, какие выводы я сделал для себя в ходе общения с участниками. Возможно, и для Вас и Вашей ситуации это будет полезным.

Полезные ссылки:

  • Посетите бесплатный вебинар 5 стратегий продаж по телефону, чтобы узнать о наиболее эффективных стратегиях телефонных продаж в Вашем бизнесе
  • Чек-лист продающего звонка из 14 шагов (скачайте бесплатно)
  • Подписывайтесь на канал Youtube «Пора расти» и будем развиваться и расти вместе
  • Прокачайте свои навыки продаж по системе “Суперпродавец”. Пожалуй, одно из лучших бюджетных решений в интернете, которое поможет Вам и Вашим сотрудникам увеличить продажи!

Учимся писать userscript’ы

Доброго времени суток всем желающим приобщиться к миру пользовательских скриптов (они же userscript, userJS, юзерскрипты).
В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят!
Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru.

Что такое юзерскрипты?

Кратко: юзерскрипт — это программа, написанная на языке JavaScript, хранящаяся на компьютере пользователя и подключаемая браузером на определенных страницах. Юзерскрипт представляет собой файл с расширением .user.js (именно по расширению браузеры понимают, что файл является юзерскриптом), содержащий метаданные и непосредственно javascript-код.
При подключении к странице юзерскрипт выполняется так же, как и обычные javascript-сценарии.
У юзерскрипта есть доступ к DOM-дереву страницы, в контексте которой он выполняется.
В современных браузерах у юзерскрипта есть доступ к localStorage и прочим HTML5 API.
Юзерскрипты поддерживаются всеми основными современными браузерами (и даже кое-как поддерживаются IE7 и выше).
Самый известный портал юзерскриптов — userscripts.org. Тут можно найти хранилище скриптов, инструменты управления своими скриптами на портале и, что не маловажно, отзывчивый форум (всё на английском).

Немного общей теории

Самыми распространенными являются скрипты под расширение GreaseMonkey для браузера Firefox.
Подробную информацию по GreaseMonkey и написанию юзерскриптов под GreaseMonkey можно узнать на http://wiki.greasespot.net.
Так сложилось исторически, что данный браузер был (и остаётся по сей день) первым, в котором поддержка юзерскриптов была выполнена на высоком уровне.

Не все скрипты, написанные для GreaseMonkey, могут запускаться в других браузерах. Причина в криворукости том, что во многих скриптах используется GM API — набор javascript-функций, специфичных для GreaseMonkey.
Однако, проще всего писать юзерскрипты под браузер Google Chrome.
На это есть ряд причин:

  1. Простым скриптам не нужна поддержка GM API (библиотека, доступная в GreaseMonkey)
  2. Google Chrome, в отличие от Firefox+GreaseMonkey, имеет отличнейший дебаггер.
  3. Сообщения об ошибках юзерскрипта в Firefox ужасны! Если вы не обладаете даром телепатиитвердыми знаниями GreaseMonkey и javascript, написание юзерскрипта может превратится в муки!
  4. Google Chrome не требует расширений для поддержки юзерскриптов. Интерфейс для удаления/отключения юзерскриптов доступен «из коробки».

Очевидные минусы Google Chrome:

  1. Нет доступа к «родному» window.
  2. Не поддерживается директива @ include метаданных. Директива @ match глючит, можно сказать, что она тоже не поддерживается.

Особенности юзерскриптов

Код юзерскриптов может посмотреть любой желающий, вооруженный блокнотом.
Базовые знания javascript позволяют отсечь угрозу установки шпионских и вредоносных скриптов простым анализом кода скрипта (придётся задействовать мозг).
Важно:Если вы не доверяете автору скрипта, главное удостовериться, что скрипт не отсылает пользовательские данные (куки, вводимый текст) на сторонние сервисы!
Все юзерскрипты запускаются после того, как загрузились все основные элементы страницы, но ещё не загрузились картинки. Можно сказать, что юзерскрипты грузятся по событию DOMContentLoaded.
В любом случае, проверки на window.onload не нужны.
Каждый браузер накладывает свои ограничения на исполнение юзерскриптов, но в целом юзерскрипты могут делать почти всё, что могут скрипты на странице.
Чаще всего юзерскрипты используются для изменения интерфейса страницы или для добавления плюшек, блекджека и шлюх(юзерскрипты для социальных сетей).
Бывают и продвинутые юзерскрипты, которые представляют собой самостоятельные программы (аукционные и игровые боты, плагины-помощники и т.д).

Анатомия юзерскриптов

Юзерскрипт — это текстовый файл с расширением user.js. В начале файла располагается блок метаданных — описание самого скрипта. После блока метаданных следует javascript-код, который и будет исполняться браузером.
Рассмотрим тестовый скрипт, который показывает alert с текстом на определенной странице.
// ==UserScript== // @name myUserJS // @description Мой самый первый юзерскрипт // @author Vasya Pupkin // @license MIT // @version 1.0 // @include http://userscripts.org/* // ==/UserScript== // Оборачиваем скрипт в замыкание, для кроссбраузерности (opera, ie) (function (window, undefined) { // нормализуем window var w; if (typeof unsafeWindow != undefined) { w = unsafeWindow } else { w = window; } // В юзерскрипты можно вставлять практически любые javascript-библиотеки. // Код библиотеки копируется прямо в юзерскрипт. // При подключении библиотеки нужно передать w в качестве параметра окна window // Пример: подключение jquery.min.js // (function(a,b){function ci(a) … a.jQuery=a.$=d})(w); // не запускаем скрипт во фреймах // без этого условия скрипт будет запускаться несколько раз на странице с фреймами if (w.self != w.top) { return; } // дополнительная проверка наряду с @include if (/http:\/\/userscripts.org/.test(w.location.href)) { //Ниже идёт непосредственно код скрипта alert(«Userscripts приветствует вас навязчивым окном.»); } })(window);
Важно: данный скрипт представляет собой оболочку для кроссбраузерных юзерскриптов. Этот же скрипт, но с английскими комментариями, можно стянуть с pastebin.com и использовать безнаказанно.
В самом начале располагается блок метаданных (в виде комментария).
// ==UserScript== // … // ==/UserScript==
Этот блок состоит из директив описания юзерскрипта. Ниже в таблице представлены основные директивы и их назначение.
Важно:Все директивы, как и сам блок метаданных, могут отсутствовать.

Директива Назначение
@ name Название юзерскрипта.
Это название будет отображаться в интерфейсе управления
юзерскриптами. Если директива отсутствует, то название
юзерскрипта будет таким же, как и название файла.
@ description Описание юзерскрипта.
Это описание будет отображаться в интерфейсе управления
юзерскриптами.
@ namespace Пространство имён.
Определяет уникальность набора скриптов.
Сюда можно вписать имя домена, принадлежащего вам. Или любую другую строку.
Считайте, что это второе название скрипта. Обязательная директива для Trixie!
@ author Имя автора.
@ license Название лицензии, по которой распространяется юзерскрипт.
@ version Номер версии юзерскрипта.
К сожалению, механизма автообновления нету ни в одном браузере,
поэтому номер версии — это просто цифры, которые отображаются в интерфейсе.
@ include Директива описания url страницы,
на которой нужно запускать юзерскрипт.
Поддерживает вайлдкард *(применимо в GreaseMoneky, Opera, IE).
Для каждого отдельного url нужно использовать отдельную директиву @ include.
@ exclude Директива описания url страницы,
на которой не нужно запускать юзерскрипт.
Поддерживает вайлдкард *(применимо в GreaseMonkey, Opera, IE).
Для каждого отдельного url нужно использовать отдельную директиву @ exclude.
@ match Аналогично @ include, но с более жесткими ограничениями
(применимо в GreaseMonkey старше 0.9.8, Google Chrome).
Подробнее об ограничениях и формате директивы можно
прочитать на этой странице.
Для каждого отдельного url нужно использовать отдельную директиву @ match.

Важно: Как показала практика, полагаться на директиву @ match в юзерскриптах не стоит.
Google Chrome периодически отказывается учитывать @ match
и запускает юзерскрипты на всех страницах.
Для предотвращения такой ситуации в юзерскрипты,
которые будут запускаться не только в Firefox,
нужно добавлять код проверки адреса страницы (см. ссылку в коде юзерскрипта).
Важно: При отсутствии директив @ include или @ match, юзерскрипты будут запускаться на всех страницах.
В нашем юзерскрипте использован ряд хитростей:

  1. Для того, чтобы юзерскрипты имели одинаковое поведение и не загрязняли глобальную область видимости, код оборачивается в замыкание (см. в коде скрипта).
  2. Для правильного подключения библиотек внутри юзерскрипта и для обхода некоторых хитрых особеннойстей GreaseMonkey, необходимо «нормализовать» ссылку на глобальную область видимости window (см. в коде скрипта).
  3. Для того, чтобы юзерскрипт не запускался несколько раз на одной и той же странице, необходимо останавливать работу при запуске юзерскрипта во фреймах (см. в коде скрипта).
  4. Для того, чтобы юзерскрипт запускался только на нужных нам страницах, необходимо явно проверять url страницы (см. в коде скрипта).
  5. Благодаря такой структуре, юзерскрипт может быть относительно просто преобразован в букмарклет.

Результат

Наш юзерскрипт готов к использованию!
Нет, серьёзно, вы можете скопировать код юзерскрипта в файл, назвать его my.user.js, и закинуть полученный файл в браузер (используйте Chrome или Firefox с установленным GreaseMonkey).
Конечно, наш юзерскрипт не обладает серьезными функциями, код выглядит страшным и малопривлекательным (для непосвященного человека). Но в итоге мы получили заготовку для кроссбраузерных юзерскриптов.
Это значит, что юзерскрипт можно запустить практически в любом современном браузере!
И это замечательно!
Остаётся вопрос: как «раздать» наш скрипт пользователям (ведь мы писали скрипт не только для себя)?
Варианты:

  • Зарегестрироваться на портале userscripts.org и загружать скрипты туда.
  • Завести репозиторий на code.google.com или github.com.
  • Создать свой простой сервис/сайт/страничку.
    Важно:Если хотите, чтобы у пользователей GreaseMonkey автоматически открывался диалог установки юзерскрипта, отдавайте файл прямиком с файловой системы (url файла должен заканчиваться на .user.js). В противном случае пользователь увидит исходный код скрипта и панель с кнопкой «установить». Эта кнопка не работает!

Рецепт для непрограммистов (похожими методами пишется ~70% скриптов):

  1. Придумываем, что будет делать наш юзерскрипт (перекрашивать ссылки, например)
  2. Берём шаблон из статьи
  3. Сохраняем в файл my.user.js
  4. Удаляем строку с alert(…).
  5. Идём на форум (userscripts.org или любой форум по javascript).
  6. Спамим, флудим и достаём людей вопросами «как перекрашивать ссылки», «дайте код» и т.д.
  7. Изменяем метаданные и проверку url страницы на нужные нам.
  8. Вставляем полученный на форуме код в юзерскрипт.
  9. Сохраняем файл.
  10. PROFIT!!1!

Полезные ссылки:
Список статей:

  1. » Учимся писать userscript’ы
  2. Userscripts. Углубляемся.
  3. Userscripts. Упаковываем юзерскрипт для Chrome
  4. Usersctripts. Кроссдоменные запросы

P.S. Хотелось бы увидеть блог Userscripts на хабре. Ибо не одним GreaseMonkey едины.

С этой статьей вы не научитесь программировать и даже не напишите как таковую программу, но найдете здесь отличные VBS скрипты и BAT файлы, которые без проблем напишете в обычном блокноте Windows, сможете усовершенствовать по своему, потом похвастаться перед друзьями и близкими. Возможно это поднимет вам настроение и вы отлично проведете время.

Большинство похожих скриптов пишутся для удобства и автоматизации каких-либо действий на компьютере с ОС Windows. Представленные же ниже скрипты мало окажутся полезными (может мне так кажется), но они отлично подойдут для первоначального знакомства с «кодингом». Вы отлично проведете время, удивив как себя, так и знакомых чайников (не программистов), плюс это еще один хороший вариант убить время за компьютером.

Немного терминологии:

  • VBS — язык программирования для создания скриптов в ОС Windows, создается/редактируется в Блокноте Windows, имеет разрешение «.vbs». Думаю, продолжать не имеет смысла, ибо это мало о чем скажет, особенно новичкам. Интересующимся — .
  • BAT — пакетный файл, в народе просто «батник». Расширение файла «.bat». Дальше аналогично — .

Данных расширений (vbs, bat) файлы создаются во всеми известном Блокноте Windows (Notepad). Для большего удобства создания скриптов рекомендуется использовать усовершенствованный (скажем так) блокнот — Notepad++. Он удобен подсветкой синтаксиса большого количества языков программирования, если вам это мало о чем говорит, то скачайте и пишите в нем — ошибок сделаете меньше в коде, ну или будет их проще найти, чем в том же мало функциональном Блокноте Windows.

Скачать Notepad++ можно на .

Для наглядности пример (слева — Блокнот Windows, справа — Notepad++):

Приступим

Если вы уже знакомы с VBS скриптами и батниками, то скорее всего нижеследующие примеры вам будут неинтересны, если же вы новичок, то для первоначального ознакомления — то, что нужно.

Научим компьютер здороваться

  1. Открываем Блокнот (или Notepad Plus Plus).
  2. Копируем в вставляем код:

    Set sapi=CreateObject(«sapi.spvoice»)
    sapi.Speak «Hello!»

  3. Обязательное условие: кавычки должны быть “такими”, «ёлочки» не подойдут, скрипт не будет обрабатываться и выйдет ошибка. Вместо слова «Hello» можете написать что угодно, даже по русски, при наличии русского голосового движка.
  4. Дальше выбираем Файл — Сохранить как — Тип файла — Все файлы — название.vbs
  5. Называйте файл как хотите, но не забудьте в конце прописать расширение — .vbs (пример — Privet.vbs).
  6. Теперь пробуйте проверить свой скрипт — запустите файл двойным щелчок мыши.

Один нюанс: если вы прописали в кавычках слова русскими буквами, а при запуске произносится непонятно что, то у вас просто не установлен русский голосовой движок. Подробная установка и настройка голосового движка выходит за рамки нашей статьи, поэтому более подробно ознакомьтесь и вновь возвращайтесь сюда.

Теперь, сделаем следующее: пропишем данный скрипт в автозагрузку, а это означает то, что при запуске компьютера вам будет произнесено написанное в программе слово (слова), если как в примере, то будет говорить — «Hello» при каждом включении компьютера. Как это сделать?

Все просто, программу (скрипт) добавить в автозагрузку можно таким же образом, то есть через такой же VBS скрипт. Создаем файл в блокноте, копируем/вставляем (Ctrl+C/Ctrl+V) следующий код:

Изменяем путь до скрипта «говорилки», вот эту строчку — C:\Privet.vbs на свою. Прописываем где у вас лежит этот скрипт и как называется. Дальше сохраняем только что созданную мини программу в блокноте и запускаем. Все, теперь компьютер будет с вами здороваться пр каждом включении.

Открыть дисковод

Есть более интересная модификация данного скрипта:

Set WMPlayer = CreateObject(«WMPlayer.OCX.7»)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop

В данном случае будет все время открываться-закрываться CD/DVD-привод, на ноутбуках в этом случае будет открываться после каждого его закрытия.

Внимание! Второй код (открытие-закрытие дисковода), некоторые антивирусы видят как вредоносную программу. Антивирус Касперского (в т.ч. и Kaspersky Free) его видит именно так и уничтожает сразу же. В первом же случае (просто открытие дисковода) для антивирусных программ не является вредоносным скриптом.

Чтобы прекратить автоматически открывать-закрывать дисковод необходимо:

  1. Запустить диспетчер задач (комбинация клавиш Windows — Ctrl+Alt+Del).
  2. Перейти на вкладку «Процессы».
  3. Найти процесс wscript.exe — правая кнопка мыши — завершить процесс.

Игра

Интересная находка из Сети — игра на VBS. Необходимо угадать число от 0 до 100. Скрипт автоматически при запуске задает (разгадывает) число, которое вам необходимо угадать и ввести в специальном окошке, при неправильном ответе даются подсказки, например меньше или больше.

Ниже тот самый код который необходимо скопировать и вставить в блокнот, далее сохранить (расширение .vbs).

Вы также можете изменять сообщения по своему, все что написано кириллицей без проблем редактируется. Не бойтесь сломать код. Поэкспериментируйте. В случае чего заново скопируйте рабочий код отсюда.

Ну и перед тем как переходить к батникам (.BAT) воспользуемся самым полезным VBS скриптом из всех перечисленных в этой статье.

Скрипт закрывающий wscript.exe

Сам скрипт:

Set TaskKill = CreateObject(«WScript.Shell»)
TaskKill.Run «TaskKill /f /im wscript.exe»

По сути он делает тоже самое, что чуть выше объяснялось в диспетчере задач, как например нельзя просто взять и закрыть надоедливый скрипт открывающий-закрывающий дисковод, а запустив данный скрипт все запущенные будут закрыты. Это как клин клином вышибают.

Немного познакомились с VBS скриптами и о том как их писать в блокноте, теперь рассмотрим несколько примеров использования BAT файлов (далее — батник).

Завершение работы /Перезагрузка компьютера

Совсем простой батник состоящий всего из одной строки.

  1. Открываем Блокнот.
  2. Пишем следующий код:

    shutdown -s -t 1 -c -f

  3. Далее Файл — Сохранить как — нзвание.bat
  4. Обратите внимание на расширение файла, это уже не VBS скрипт, а батник, по этому в конце названия прописываем .bat (Пример compoff.bat).
  5. Запускаем только что созданный батник двойным щелчком мыши и компьютер выключится (Завершение работы).

Есть такой вариант кода:

shutdown -r -t 1 -c -f

Все также, прописываем в блокноте, сохраняем с расширением .bat и после запуска компьютер перезагрузится (обычная перезагрузка компьютера).

Удаление обновлений

Данный батник пригодится в том случае, если вы уже обновились до Windows 10. В чем суть? В этом батнике перечислены команды по удалению нескольких обновлений, как видно из названия — обновления телеметрии, или как раз одна из шпионских штучек системы, мы однажды уже говорили как отключить функции слежки Windows 10, в данном же случае вы просто создаете батник, в содержимое копируете код ниже и запускаете, после чего будут удалены перечисленные обновления.

Таким образом можно удалить абсолютно любое обновление, даже назойливое KB971033 которое проверяет копию Windows 7 на подлинность.

В Интернете встречается много различных скриптов, якобы безвредных, но будьте осторожны, прежде чем пробовать непонятно какой скрипт, некоторые из них могут навредить, например — вносить изменения в реестр, а в случае каких ошибок система будет выдавать ошибки, в таком случае придется или восстанавливать реестр Windows или сделать восстановление системы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *