|
|
Несколько слов от автора:
Привет всем. Извиняюсь за опоздание, отдыхал после школы :), надоела она мне порядком. Вот покапался я в архивах кодов и вот,
что я нашел вы увидите в оглавлении. Читайте с удовольствием :).
З.Ы. Чуть не забыл. На днях мне пришло письмо в котором говорилось, что я не даю руководства начинающим, постораюсь
сделать инфу в следующем выпуске, что-нибудь накатаю чайникам :).
ПРИМЕЧАНИЕ: Выпуски данной рассылки начиная с первого вы сможете прочитать на http://subscribe.ru/archive/comp.design.snoozex/
@LEXis
|
|
29.03.2001 Выпуск N21 Обзор ведет @LEXis
# E-Mail группа "СообЧа-Visual BASIC":
| О группе |
| Работа с WAV файлами |
# Приемы с WINDOWS на VB:
| Изменение имени компьютера |
# В разделе "вопросы/ответы":
| Ответы на вопросы читателей |
# Рубрика "Объявления"
E-Mail группа "СообЧа-Visual BASIC"
|
| О группе |
Группа VB. Заходите в гости. Здесь вы приобретете практические
навыки по программированию на Visual Basic. Как вы этого сможете
достигнуть? Путем написания собственной серьезной программы. Чем
обычно занимается рядовой чайник-программист? Ну пишет там всякие
приколы на VB... Ну ма-а-ленькую полезную программку наваяет. А как
получить навыки в создании серьезных программ? Правильно, путем
создания серьезных программ. ;) Но в одиночку вам с этим не
справиться. Вот для этого в проекте СообЧа существует группа
программистов-чайников, которые занимаются разработкой серьезного
софта на VB.
Суть состоит в том, что вам совсем необязательно знать все в Visual
Basicе. Вам достаточно быть рядовым чайником и немного знать
операторы VB. Остальному научимся вместе.
На данный момент в группе разрабатывается почтовая программа под
рабочим названием "Сообчайлер". Она будет уметь все, что умеет
популярная программа The Bat и даже намного больше. Есть сборник
оригинальных идей, выдвинутых членами нашей группы, которые мы
постараемся реализовать все вместе.
Проект разбивается на отдельные простые задачи. Такие как: проверка
орфографии, форма для написания нового письма, главное окно... и
т.п. Каждую часть делает отдельный человек. Затем он высылает
сделанный модуль в группу и остальные просто присоединяют его к
базовому проекту.
Вам совсем не обязательно четко представлять как это сделать.
Достаточно просто начать и столкнуться с какой-нибудь проблемой.
Пусть это будет даже проблема типа "А как добавить новый модуль к
проекту?". Все. Наткнулись... ;) Дальше действуем по одной схеме -
пишем письмо с описанием проблемы в группу и мы все вместе
разбираемся в проблеме. Таким образом все остальные получат ЗНАНИЯ и
некоторые навыки в решении создавшихся проблем.
Не забывайте - все мы чайники. Не стоит бояться задать вопрос.
Задавайте - а мы вместе попытаемся найти ответ.
Подписаться в группу (пустое письмо)
| Запуск DOS программы |
hackcode Март 2001
Playing a WAV File
'----
'Method 1: API call "PlaySound":
Private Const SND_LOOP = &H8 ' play over & over
Private Const SND_ASYNC = &H1 ' allow code to continue running
Private Const SND_NOSTOP = &H10 ' do not play if another sound is active
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As Long, _
ByVal dwFlags As Long) As Long
Private strSoundPath As String
Private Sub Command1_Click()
Dim x As Long
x = PlaySound(strSoundPath, 0, SND_ASYNC Or SND_NOSTOP)
End Sub
'Method 2: API call "sndPlaySound":
Private Const SND_LOOP = &H8 ' play over & over
Private Const SND_ASYNC = &H1 ' allow code to continue running
Private Const SND_NOSTOP = &H10 ' do not play if another sound is active
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Sub Command2_Click()
Dim x As Long
x = sndPlaySound(strSoundPath, SND_ASYNC Or SND_NOSTOP)
End Sub
'Method 3: API call "mciExecute":
Private Declare Function mciExecute Lib "winmm.dll" _
(ByVal lpstrCommand As String) As Long
Private Sub Command3_Click()
Dim x As Long
x = mciExecute("Play " & strSoundPath)
End Sub
'----
Recording WAV file
'----
Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As
String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub cmdRecordFromCD_Click() ' RECORD WAV
Dim i As Long, RS As String, cb As Long, t#
On Error Resume Next
RS = Space$(128)
Kill "c:\cdtest.wav"
cmdPlayCD.Value = True
i = mciSendString("open new type waveaudio alias mywav", RS, 128, cb)
i = mciSendString("record mywav", RS, 128, cb)
t# = Timer + 1: Do Until Timer > t#: DoEvents: Loop
i = mciSendString("stop mywav", RS, 128, cb)
i = mciSendString("save mywav c:\cdtest.wav", RS, 128, cb)
i = mciSendString("close mywav", RS, 128, cb)
cmdStopCD_Click
On Error GoTo 0
End Sub
'----
Setting WAV format for previous sample (use before "record" command)
>>> 16bit stereo @ 22KHz
"set mywav time format ms format tag pcm channels 2 samplespersec 44100
bytespersec 176400 alignment 4 bitspersample 16"
>>> 16bit mono @ 22kHz <--- use this one, it's the best
"set mywav time format ms format tag pcm channels 1 samplespersec 44100
bytespersec 22050 alignment 1 bitspersample 16"
>>> 8bit mono @ 11kHz
"set mywav time format ms format tag pcm channels 1 samplespersec 11025
bytespersec 11025 alignment 1 bitspersample 8 "
| Изменение имени компьютера |
Создайте проект с формой (кнопка Command1 и текстовое поле Text1) и модулем.
'----
'Add this code to the module:
Declare Function SetComputerName Lib "kernel32" _
Alias "SetComputerNameA" (ByVal lpComputerName As _String) As Long
'Add this code to the command button:
Private Sub Command1_Click()
a$ = Text1.Text
b& = SetComputerName(a$)
End Sub
'----
| Лог - файлы |
Очень полезно, чтобы программа вела лог-файлы своей работы. Особенно
записывала туда время и на каком этапе произошел сбой. В дальнейшем это
существенно облегчает поиск и исправление ошибки. Вдобавок если вы
программу делали на заказ, то цена такого протокола работы резко
возрастает. Все что нам нужно для работы - это ввести одну-две переменных
и добавить одну ма-а-ахонькую процедурку. Итак, поехали:
Для начала объявим переменную Private Logging As Boolean
Она будет служить нам для разрешения/запрета ведения подробного протокола
работы. Это необходимо, чтобы без нужды не писать в файл большое
количество информации. Только время запуска/завершения и код и описание
ошибки, если таковая была.
Добавим в программу возможность запуска с ключом /l для ведения подробных
логов. это придаст гибкость программе.
З.Ы. чтобы запустить программу с ключем /l создайте ярлык программе и добавте
в пути к программе (лейбл объект) этот ключ.
'Если программа была запущена с ключем /l, то записываем
'все действия программы в логи, иначе - записываются только
'контрольные точки и сообщения об ошибках
If Command$ = "/l" Then Logging = True Else Logging = False
If InStr(1, Command$, "/l") > 0 Then Logging = True Else Logging = False
Ну, а теперь осталось только добавить саму процедуру записи действия:
Private Sub Log(Promt As String)
'Процедура, которая ведет логи в зависимости от ключа в
'коммандной строке
'Если переменная установлена в False (запуск без ключа /l), то пропускаем
If Logging = False Then Exit Sub
Dim FileNum As Integer
FileNum = FreeFile
Open App.Path & "\checker.log" For Append As FileNum
Write #FileNum, " " & Promt
Close #FileNum
End Sub
Вот и все. Теперь используем ее везде, где хоть что-то делается. Это дабавляйте
в том месте где нужно добавить запись в лог-файл.
Log Now & "Получение почты" & vbCrLf
Однако для наиболее ответственных точек сделаем отдельную процедуру записи состояния программы в этих точках LogGeneral.
Private Sub LogGeneral(Promt As String)
'Процедура, которая ведет логи.
Dim FileNumb As Integer
FileNumb = FreeFile
Open App.Path & "\checker.log" For Append As FileNumb
Write #FileNumb, " " & Promt
Close #FileNumb
End Sub
| Вопрос от @LEXisa
Здравствуйте,
Как снять изображение с экрана и сразу сохранить его в графический файл? Оченнннь надо. Плиз хелп.
|
|
| Требуются люди
Хочу напомнить, что еще пусты многие вакансии рассылки:
- Рубрика "Рецензия книг"
- Рубрика "Практикум на примерах"
Также можно просто присылать коды.
|
| Проекты группы СообЧа-VB
Вот проекты которые на данный момент в рабочем состоячнии:
- Сообчайлер: почтовый клиент
- Крестики: Нолики - игра :)
- Secret CODE: шифратор
- Inet TIMER: блокиратор интернета
|
|
Код моей кнопки:
<!-- SnoozeX Design "PLAY" -->
<a href="http://snoozex.boom.ru" TARGET="_blank"><BR><IMG SRC="http://snoozex.boom.ru/new.gif" WIDTH=88 HEIGHT=31 BORDER=1 ALT="SnoozeX Design"></a>
<!-- SnoozeX Design "END" -->
|
© 2000 - 2001 @LEXis & Design by SnoozeX Design
|
Рассылка является составной частью проекта "СообЧа - СООБщество ЧАйников"
© 2000 - 2001 СообЧа (СООБщество ЧАйников)
|
| |
Спасибо за внимание. Ваш @LEXis |
|