Пишим приколы на VBS - обучающая статья

Discussion in 'Песочница' started by Shawn1x, 22 Apr 2017.

  1. Shawn1x

    Shawn1x Elder - Старейшина

    Joined:
    24 Aug 2007
    Messages:
    290
    Likes Received:
    506
    Reputations:
    13
    VBS - это скриптовый язык, скрипты на vbs имеют расширение .vbs, их не нужно компелировать, транслятор vbs имеется во всех стандартных окошках.

    Разбирём небольшой пример:
    UserName=InputBox("Ваше имя:","WebKill","name") 'Считываем имя юзера в переменную UserName
    MsgBox "Здорово " &UserName& "!",0,"WebKill" 'Выводим сообщение с приветствием юзера

    Думаю если ты знаком с другими языками разобраться в этом примере не составит большого труда. Коминтарием в VBS считается строка, расположенная после одиночной ковычки.
    Далее мы рассмотрим операции с файлами. Для этого в vbs существует обьект FileSystemObject.
    Чтобы подключить функции какого либо обьекта его необходимо выразить следующим образом:
    set FSO=CreateObject("Scripting.FileSystemObject")
    И далее мы можем вызывать функции из FileSystemObject, используя для этого FSO.
    Пример:
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
    FSO.DeleteFile "C:\1.txt" 'Удаляем файл C:\1.txt

    Для успешного выполнения этого скрипта необходимо чтобы в системе существовал файл C:\1.txt, который будет удалён скриптом. Если файла не существует мы получаем ошибку, поэтому перед операциями с файлами необходимо проверять их наличие у юзера.
    Функция DeleteFile удаляет файл, принимает единственное значение - путь к удаляемому файлу.
    Как скопировать файл?
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
    FSO.CopyFile "C:\1.txt","C:\Копия 1.txt" 'Копируем C:\1.txt

    ]И копирование папки:
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
    FSO.CopyFolder "C:\1","C:\Копия 1" 'Копируем C:\1

    Как скопировать куки юзера, если заранее не знаешь его имя?
    set fso=createobject("scripting.filesystemobject")
    set WshShell = WScript.CreateObject("WScript.Shell")
    fso.copyfolder WshShell.ExpandEnvironmentStrings("%USERPROFILE%") +"\Cookies", "Cookies"

    В дополнительных материалах к статье после запуска файла "Копирование куков.vbs" в папке "Cookies" появятся все твои куки!

    Как скопировать папку со всем её содержимым?
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject FSO.CopyFolder "C:\1","C:\Копия 1" 'Копируем C:\1

    Удаление папки
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
    FSO.DeleteFolder "C:\1" 'Удаляем файл C:\1

    Создание папки
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
    FSO.CreateFolder "C:\1" 'Создаём C:\1

    Как создать файл, и записать в него инфу?
    set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
    set file =FSO.CreateTextFile("C:\WebKill's.html") 'Создаём файл, и сохраняем его дескриптор в переменную file
    file.WriteLine("WebKill") ' Записываем текст в файл
    file.Close 'Закрываем файл

    Здесь функции CreateTextFile - создание файла
    WriteText - Запись в файл
    Close - Закрытие файла

    Как приостановить выполнение проги на некторое время?
    wscript.sleep 3000 MsgBox "Прошло 3 секунды", 0, "WebKill"
    Приведи пример редактирования реестра!
    Set WshShell = CreateObject("WScript.Shell") WshShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Window Title", "WebKill - webkill.narod.ru"
    Как на VBS программно вытащить дисковод?
    CreateObject("WMPlayer.OCX.7").cdromCollection.item(0).Eject

    Как на VBS бесконечно мигать капсоком?
    Set S = CreateObject("Wscript.Shell")
    do
    wscript.sleep 200
    s.sendkeys"{capslock}"
    wscript.sleep 200
    s.sendkeys"{numlock}"
    wscript.sleep 200
    s.sendkeys"{scrolllock}"
    loop

    Как узнать имя текущего юзера, и обозвать его как ни-будь?
    Dim WshNetwork
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    MsgBox WshNetwork.UserName+" лох! ", 0, "Миша"

    Заключение
    В этой статье мы разобрали основы VBS'a. Несмотря на то что лучше всё это проделывать на С++ или делфи VBS остаётся полезным языком для начинающих.
     
  2. zer0_igL

    zer0_igL Well-Known Member

    Joined:
    9 Jan 2017
    Messages:
    297
    Likes Received:
    473
    Reputations:
    4
    Жаль что не шарю в этой херне.
     
  3. leksadin

    leksadin Level 8

    Joined:
    19 Jan 2016
    Messages:
    121
    Likes Received:
    60
    Reputations:
    12
    Классная статья.


    А почему лучше ? Интересно мнение автора
     
  4. Payer

    Payer Elder - Старейшина

    Joined:
    14 May 2010
    Messages:
    1,002
    Likes Received:
    4,776
    Reputations:
    62
    Походу у Шавникса аккаунт увели.
    Он даже когда теплый писал грамотно. А сейчас школота строчит.
     
    Veil likes this.
  5. st55

    st55 Level 8

    Joined:
    20 Apr 2016
    Messages:
    185
    Likes Received:
    312
    Reputations:
    47
    Это абсолютный копипаст статьи Webkill'а.
     
  6. lolidoli

    lolidoli New Member

    Joined:
    9 May 2017
    Messages:
    51
    Likes Received:
    4
    Reputations:
    0
    Я могу тут вопросы задать ? Говорят автор нарк и пьянь - И часто тут не бывает (