Программирование для непрограммистов к 1 апреля

Наступает один из самых веселых народных праздников – День дурака, или более политкорректно – День смеха. Соответственно, встает насущный вопрос – как подшутить над коллегами на работе, не нажив себе дополнительных врагов.

Можно, конечно, воспользоваться классическими приколами типа:
• спросить подопытного, как расшифровывается слово «ДУНЯ»; предложить свой вариант «Дураков У нас Нет»; и дождаться недоуменного «А Я?»;
• напихать в фотодатчик мышки испытуемого ворсинок или просто заклеить его скотчем (в смысле, датчик)…

Но можно применить и более высокотехнологичные и изощренные способы «сноса крыши» с помощью программ-шуток.

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

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

1. Скачиваем и устанавливаем необходимое программное обеспечение. Например, с официального сайта: www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe

2. Дополнительно можно скачать русскую книгу-руководство: autoit-script.ru/autoit_rv_ua/files/Other/AutoIt_v3_Kratkoe_Rukovodstvo.pdf
И установить русский Help (справку): u.to/KfkBAQ (подробнее, на autoit-script.ru/index.php?topic=10070.0)

3. Заходим в папку установки. По умолчанию, C:\Program Files\AutoIt3\SciTE. Далее запускаем редактор SciTE.exe.

На этом подготовительная часть окончена – можно приступать к «программированию».

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

Итак, запустив редактор SciTE.exe, получаем окно вида:

image

Задумаемся: что самое простое, безобидное и неприятное можно подстроить игроку? Ну, разумеется, закрыть окно «Косынка». Кстати, соответствующий оператор (в переводе на английский и немного сокращенный) буквально так и выглядит: WinClose(«Косынка»):

image

Т.е. если мы запустим на компьютере пользователя программку, скомпилированную на основе этой строки кода, то окно (Win) с косынкой («Косынка») закроется (Close).

Однако тут появляется чисто организационная проблема… Вряд ли игрок в процессе игры позволит запускать у себя на компьютере какую-то там подозрительную программку. К тому же шутка потеряет факторы неожиданности и анонимности.

Поэтому логично будет поручить задачу отслеживания действий игрока самой программе.
Для этого добавим к ней простой оператор WinWaitActive(«Косынка»), что в переводе на русский означает: Жди Активации Окна «Косынка».

image

Обратите внимание, что новая строка кода встала на первое место, что вполне логично.

Теперь опять займемся чисто техническими деталями (которые для программиста очевидны, а для простого пользователя – темный лес). Во-первых, полученную программку (в дальнейшем, будем называть ее более правильным термином «скрипт») надо сохранить, а во-вторых – скомпилировать, т.е. получить на основе кода исполняемый файл (с расширением «exe», «экзешник»).

1. File –> Save As… –> CloseSol
2. Tools –> Compile –> Compile Script

В итоге (если вы не умудрились наделать ошибок в двух строках кода) в исходной папке (по умолчанию, C:\Program Files\AutoIt3\SciTE) должен появиться наш исходник CloseSol.au3 и исполняемый файл – CloseSol.exe.

Остается лишь запустить этот скрипт (CloseSol.exe) на компьютере испытуемого (например, с флэшки) и ждать его реакции.

Однако, наш скрипт, хотя и вполне работоспособный, еще весьма далек от совершенства.

Во-первых, он «одноразовый». Т.е. эффект от шутки получится весьма кратковременный. Чтобы скрипт работал до потери сознания испытуемого, просто зациклим его (скрипт) на бесконечное выполнение «операторными скобками»: Do и Until 0=1, что означает – Делай Пока 0 не станет равным 1.

image

Во-вторых, мгновенное закрытие окна – слишком простая процедура, чтобы досадить играющему. Поэтому, заставим скрипт подождать несколько секунд, пока игрок разыграется: Sleep (30000) – Спать 30000 миллисекунд (30 секунд).

image

Ну и, в-третьих, наш скрипт в процессе выполнения будет маячить в виде иконки в трее, чем быстро себя обнаружит. Поэтому спрячем его командой Opt(«TrayIconHide», 1):

image

Вот, собственно, и всё. Осталось перекомпилировать скрипт и с утра 1 апреля запустить его на компьютере подопытного (-ой). Всё остальное – дело техники. Можно, например, снять происходящее на видеокамеру и выложить в интернет. А можно просто пригласить друзей – посмотреть на реакцию игрока…

Ну и, разумеется, вы должны знать, как в любой момент прекратить это безобразие – для этого достаточно зайти в «Процессы» «Диспетчера задач» (вызывается нажатием клавиш Ctrl Alt Del) и, найдя соответствующий процесс (CloseSol.exe), закрыть его (ткнуть правой кнопкой мыши и выбрать «Закрыть процесс»).

Кстати, если обозвать скрипт каким-нибудь мудреным именем, например, service, то даже опытный сисадмин устанет искать источник проблемы. Если же программку добавить в автозапуск, то получится почти что вирус – но это уже для особо п(р)одвинутых шутников.

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

Ну. И что?
Реклама
Комментарии 8
  • +1
    А ещё можно мышку передвигать иногда

    Local $aPos = MouseGetPos()
    MouseMove($aPos[0]+Random(0,30), $aPos[1]+Random(0,20))
    Sleep(20000)
    
    • +4
      В школе скринили рабочий стол со всеми ярлыками на нем и потом уже скриншот ставили в качестве заставки для рабочего стола.
      Было очень весело, когда школьный программист уже всерьез думал менять винду.
      Смех нас выдал только громкий)
      • 0
        Ну только надо ещё оригинальные ярлыки убрать, а то никто подвоха не заметит т.к. нарисованная иконка будет закрыта кликабельной.
        • 0
          Еще был более изощренный способ с перемешиванием иконок и названий ярлыков. Например, у ярлыка MS Word заменить название и иконку на Internet Explorer.
        • +3
          Небольшая поправка. Вирус — программа, способная к саморазмножению при случайном содействии пользователя. Данная программа скорее «Вредоносное ПО» или по буржуазному malware

          А за статью — спасибо. Не знал такого скриптового языка.
          • 0
            привет из 2008.
            пыщь.vbs
            set WSHShell = WScript.CreateObject("WScript.Shell")
            
                min = 300000
                max = 900000
            
                Do While true
                    WScript.Sleep Int((max-min+1)*Rnd+min)
                    'MsgBox Int((max-min+1)*Rnd+min)
                    WSHShell.Run "cmd /c taskkill /f /im calc.exe /t", 0
                Loop
            

            calc.exe нужно заменить на нужное название.
            Задержка от 5 до 15 минут позволяет пользователю увлечься процессом, а потом внезапно.
            Никакие сторонние программы не нужны, иконки нет, в списке процессов выглядит вот так:
            image
            • +1
              Просто закрыть — неинтересно. Похоже на обыкновенный глюк программы. А вот закрыть курсором мышки — это уже красиво и действительно тянет на розыгрыш. Так что я бы скрипт доработал.
              • 0
                Являясь как раз непрограммистом, писал вполне себе интересные вещи на AutoIT. Он реально шустрый, быстрее vbs/js, а уж PoSH тут вообще жуткий тормоз, хотя и не без преимуществ.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое