Сборник примеров кода Visual Basic
Содержание Создаём оболочку для CD. Копируем и перемещаем файлы. Проигрываем музыкальные файлы 1. Проигрываем файл в формате *.mp3:
|
Создаём оболочку для CD
1. Откройте блокнот и запишите туда следующее:
[autorun]
OPEN = setup.bat
Сохраните текстовый файл как Autorun.inf
2.Создайте новый текстовый файл и запишите туда следующее:
@Echo off
Rem регистрируем msvbvm60.dll
regsvr32 msvbvm60.dll
Rem чтобы зарегистрировать еще один компонент введите ещё одну строку: regsvr32 ИМЯ ВАШЕГО КОМПОНЕНТА, столько раз, сколько компонентов
Сохраните текстовый файл как Setup.bat
3. Теперь в корневом каталоге вашего CD обязательно должны быть файлы autorun.inf (ранее созданный текстовый файл), msvbvm60.dll (нужная библиотека), autorun.exe (созданная вами оболочка), setup.bat (ранее созданный исполняемый файл DOS) и все ваши компоненты.
Теперь при открытии CD появиться столько диалоговых окон о регистрации, сколько компонентов вы регистрируете, после этого будет запущена ваша оболочка.
В начало
Private Declare Function CopyFile Lib "kernel32" Alias _ "CopyFileA" (ByVal lpExistingFileName As String, ByVal _ lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Declare Function MoveFile Lib "kernel32" Alias _ "MoveFileA" (ByVal lpExistingFileName As String, ByVal _ lpNewFileName As String) As Long
Sub CopyMove()
Dim strSource As String
Dim strTarget As String
Dim lngRetVal As Long
strSource = "C:\yfile.txt"
strTarget = "C:\Windows\yfile.txt"
'// Копируем файл
lngRetVal = CopyFile(Trim$(strSource), Trim(strTarget), False)
If lngRetVal Then
MsgBox "Файл скопирован!"
Else
MsgBox "Ошибка!"
End If
'// Переместить файл
lngRetVal = MoveFile(Trim$(strSource), Trim(strTarget))
If lngRetVal Then
MsgBox "Файл перемещен!"
Else
MsgBox "Ошибка!"
End If
End Sub
1. Проигрываем файл в формате *.mp3:
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
'чтобы воспроизвести файл
Call mciExecute("play имя вашего файла")
'чтобы закрыть файл
Call mciExecute("close имя вашего файла")
2. Проигрываем файл в формате *.mid:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uRetrunLength As Long, ByVal hwndCallback As Long) As Long
'Открываем файл
Call mciSendString ("open ИМЯ ВАШЕГО ФАЙЛА type sequencer alias passport", 0, 0,0)
'Проигрываем файл
Call micSendString ("play passport", 0, 0, 0)
'Останавливаем файл
Call micSendString ("stop passport", 0, 0, 0)
3. Проигрываем файл в формате *.wav:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
'Проигрываем файл
Call sndPlaySound("ИМЯ ВАШЕГО ФАЙЛА", 0)
1. Перезагрузка компьютера:
Shell "rundll32 shell32,SHExitWindowsEx 2"
'Если заменить 2 на 1, то получим функцию для выключения компьютера
2. Вызвать окно "Форматирование: Диск 3,5 (А:):
Shell "rundll32 shell32,SHFormatDrive"
3. Открыть "Свойства экрана":
Shell"rundll32 shell32,Control_RunDLL desk.cpl"
4. Выстраивает все не свернутые окна сверху вниз:
Shell"rundll32 user,tilechildwindowsl"
5. Обновить рабочий стол:
Shell"rundll32 user,repaintscreen"
6. Отключить клавиатуру:
Shell "rundll32 keyboard,disable"
7. Отключить мышь:
Shell "rundll32 mouse,disable"
8. Функция Environ:
MsgBox Environ ("TMP") 'Выводит директорию временных файлов
MsgBox Environ ("COMSPEC") 'Выводит загрузчик ДОСовской оболочки (обычно, command.com)
MsgBox Environ ("PATH") 'Выводит пути, объявленные в autoexec.bat
MsgBox Environ ("WINDIR") 'Выводит каталог Windows
В начало
Const REG_SZ As Long = 1
Const REG_DWORD As Long = 4
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const KEY_ALL_ACCESS = &H3F
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
RegOpenKeyEx - Функция открывает существующий ключ реестра, а точнее определяет его манипулятор.
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Основные параметры:
hKey - имя стандартного ключа (например, HKEY_CLASSES_ROOT)
lpSubKey - имя открываемого ключа (например, "MyProgram\Options")
phkResult - заполняется манипулятором открытого ключа
Пример:
Dim Result As Long
RegOpenKeyEx HKEY_CLASSES_ROOT, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result
'// В этом примере выводится манипулятор ключа HKEY_CLASSES_ROOT\MyProgram\Options
RegCloseKey - Функция закрывает ключ системного реестра.
Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long
Основные параметры:
hKey - манипулятор закрываемого ключа
Пример:
Dim Result As Long
RegOpenKeyEx HKEY_CLASSES_ROOT, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result '// Открытие ключа
RegCloseKey Result '// Закрытие ключа
RegCreateKeyEx - Функция для создания нового ключа. Если ключ существует, функция открывает его. Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Основные параметры:
hKey - имя стандартного ключа (например, HKEY_CLASSES_ROOT)
lpSubKey - имя создаваемого подключа (например, "MyProgram\Options")
Пример:
Dim SA As SECURITY_ATTRIBUTES
Dim Result As Long
RegCreateKeyEx HKEY_CURRENT_USER, "MyProgram\Options", 0, vbNullString, 0, KEY_ALL_ACCESS, SA, _ Result, &H1
RegDeleteKey - Функция удаляет указанный ключ
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Основные параметры:
hKey - имя стандартного ключа
lpSubKey - имя удаляемого подключа. В Win9x/Me все подключи указанного подключа также удаляются. В WinNT подключ не должен содержать других подключей.
Пример:
RegDeleteKey HKEY_CURRENT_USER, "MyProgram\Options"
RegSetValueEx - Функция задаёт значение и тип параметра, находящегося в заданном ключе.
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Основные параметры:
hKey - манипулятор ключа
lpValueName - имя параметра
dwType - тип ключа
lpData - новое значение
Пример:
Dim Result As Long
Dim Retval As Long
'// Находим манипулятор нужного ключа
Retval = RegOpenKeyEx(HKEY_CURRENT_USER, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result)
'// Числовому параметру DWordValue присваивается значение 22
RegSetValueEx Result, "DWordValue", 0, REG_DWORD, 22, 4
'// Строковому параметру StringValue присваивается значение "Реестр"
RegSetValueEx Result, "StringValue", 0, REG_SZ, ByVal "Реестр", Len("Реестр")
RegCloseKey Result '// Закрытие ключа
RegDeleteValue - Функция удаляет заданный параметр
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Основные параметры:
hKey - манипулятор ключа
lpValueName - имя удаляемого параметра
Пример:
Dim Result As Long
'// Находим манипулятор нужного ключа
RegOpenKeyEx HKEY_CURRENT_USER, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result
'// Удаляем параметр с именем StringValue
RegDeleteValue Result, "StringValue"
RegCloseKey Result '// Закрытие ключа
RegQueryValueEx - Функция считывает значения параметра
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Основные параметры:
hKey - манипулятор ключа
lpValueName - имя читаемого параметра
lpData - заполняется значением заданного параметра
Пример:
Dim Result As Long
Dim DWResult As Long
Dim STResult As String
STResult = Space(255)
'// Находим манипулятор нужного ключа
RegOpenKeyEx HKEY_CURRENT_USER, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result
'// Считываем значения числового параметра с именем DWordValue
RegQueryValueEx Result, "DWordValue", 0, 0, DWResult, 4
'// Считываем значения строкового параметра с именем StringValue
RegQueryValueEx Result, "StringValue", 0, 0, ByVal STResult, Len(STResult)
RegCloseKey Result '// Закрытие ключа
'// Выводим значение параметров
MsgBox DWResult '// Числовое
MsgBox STResult '// Строковое
'// Функции
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
'// Структуры
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
'// Константы
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
Const KEY_ALL_ACCESS = &H3F
'// Функция для ассоциации типа файла с приложением
'// FileType - расширение файла