Просмотр "Уроки Visual Basic.NET"

Запись звука с микрофона

Очередной пример, как записать звук с микрофона и воспроизвести его.

Будем использовать для записи звука библиотеку NAudio.dll, она дает более чистый звук, без помех, в отличии от Winmm.dll

Скачать NAudio.dll

Скачиваем и распаковываем.

Создаем новый проект->Проект->Добавить ссылку->Обзор->Находим у себя на компьютере скачанную библиотеку NAudio.dll и нажимаем "Ок".

AddDll Запись звука с микрофона

AddDll2 Запись звука с микрофона

Подробнее »

  Метки:
  Евгений
  Просмотров: 13 498
  Запись опубликована в 12:50

Проигрывание звукового файла из ресурсов

Зачем таскать за приложением звуковые файлы, если их можно поместить в ресурсы и спокойно вызывать их от туда?

Добавим звуковой файл в ресурсы: Проект->Свойства проекта->Ресурсы->Добавить ресурс->Добавить существующий файл. Откроется диалог выбора файла, из ComboBox выбираем формат файла .wav

Res2 Проигрывание звукового файла из ресурсов

Res1 Проигрывание звукового файла из ресурсов

Если все сделали правильно то звуковой файл добавился в ваш проект.

Res3 Проигрывание звукового файла из ресурсов

Сейчас переходим к коду.

Воспроизводить звуковой файл будем с помощью класса SoundPlayer.

На форму добавим кнопку и два раза кликнем по ней, откроется редактор кода с обработчиком события Button1_Click

Imports System.Media
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Sp As New SoundPlayer
        Sp.Stream = My.Resources.train9
        Sp.Play()
    End Sub
End Class

В коде измените My.Resources.train9 на свой добавленный ресурс.

  Метки:
  Евгений
  Просмотров: 6 566
  Запись опубликована в 19:32

Проверка подключения к Интернету

Проверяет действительное подключение локального компьютера к Интернету.

На выходе:

  • True - Подключен
  • False - Не подключен

Советую еще почитать статью - Определение состояния подключения локального компьютера, а также для запуска или завершения подключения к Интернету с помощью Visaul Basic.NET

Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    MsgBox(InternetGetConnectedState(0, 0&))
End Sub
  Метки:
  Евгений
  Просмотров: 4 779
  Запись опубликована в 19:08

Очистка корзины

Программная очистка корзины используя Windows API

Imports System.Runtime.InteropServices
Public Class Form1
    Enum RecycleFlags As Integer
        SHERB_NOCONFIRMATION = &H1
        SHERB_NOPROGRESSUI = &H1
        SHERB_NOSOUND = &H4
    End Enum
    Dim EmptyRecycleBin()
    <DllImport("Shell32.dll")> Private Shared Function SHEmptyRecycleBin(ByVal hwnd As IntPtr, ByVal pszRootPath As String, ByVal dwFlags As RecycleFlags) As Integer
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SHEmptyRecycleBin(IntPtr.Zero, Nothing, RecycleFlags.SHERB_NOSOUND Or RecycleFlags.SHERB_NOCONFIRMATION)
    End Sub
End Class
  Метки:
  Евгений
  Просмотров: 3 279
  Запись опубликована в 16:56

Математические выражения. Метод Eval из VBS

Метод Eval принимает строку как выражение, высчитывает его и выводит результат. Похожий вариант представлен средствами .NET, смотреть статью.

MethodEval Математические выражения. Метод Eval из VBS

Dim objScript As Object = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
Label1.Text = "Ответ: " & objScript.Eval(TextBox1.Text)

Можно возводить квадрат, вычислять синус, косинус и т.д

Остальные математические функции.

  Метки: , , , ,
  Евгений
  Просмотров: 6 516
  Запись опубликована в 07:17

Перетаскиваем файлы с компьютера в ListBox

Перетаскиваем файл с компьютера в ListBox

Для запрета перемещения папок и отдельных файлов, я напишу пример позже.

Код для события DragEnter:

Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter
e.Effect = DragDropEffects.Copy
End Sub

Код для события DragDrop:

Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
Dim р As String = IO.Path.GetExtension(files(0))
If р <> "" Then
For i = 0 To files.Length - 1
ListBox1.Items.Add(files(i))
Next i
End If
End If
End Sub

И код для загрузки формы(можете в режиме конструктора, выставить это свойство):

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.AllowDrop = True
End Sub

FilesDragDrop Перетаскиваем файлы с компьютера в ListBox

Загрузить проект

  Метки:
  Евгений
  Просмотров: 5 009
  Запись опубликована в 13:02

Свой контрол в чужом окне

В этом уроке мы добавим свою кнопку в проводник!

Для начала декларация функций:

    Private Declare Ansi Function SetParent Lib "user32" (hWndChild As Integer, hWndNewParent As Integer) As Integer
    Private Declare Ansi Function FindWindow Lib "user32" Alias "FindWindowA" (lpClassName As Integer, lpWindowName As Integer) As Integer
    Private Declare Ansi Function GetDesktopWindow Lib "user32" () As Integer
    Private Declare Ansi Function GetWindow Lib "user32.dll" (hwnd As Integer, wCmd As Integer) As Integer
    Private Declare Ansi Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (hwnd As Integer,  ByRef lpClassName As String, nMaxCount As Integer) As Integer
    Private Declare Ansi Function SetWindowPos Lib "user32.dll" (hwnd As Integer, hWndInsertAfter As Integer, X As Integer, Y As Integer, cx As Integer, cy As Integer, wFlags As Integer) As Integer
    Private Function FindWindows(wClass As String) As Long
        Dim result As Long = 0L
        Dim num As Long = CLng(Form1.GetDesktopWindow())
        num = CLng(Form1.GetWindow(CInt(num), 5))
        While num <> 0L
            Dim text As String = Strings.Space(256)
            Dim num2 As Long = CLng(Form1.GetClassName(CInt(num), text, 256))
            text = Strings.Left(text, CInt(num2))
            If Operators.CompareString(text, wClass, False) = 0 Then
                result = num
                Exit While
            End If
            num = CLng(Form1.GetWindow(CInt(num), 2))
        End While
        Return result
    End Function

На форму кидаем кнопку и:

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim hWnd = CInt(GetDesktopWindow)
        Form1.SetParent(CInt(Me.Button1.Handle), hWnd)
        Button1.Location = New Point(100, 0)
    End Sub

И вот, наша кнопка теперь в окне проводника (можно "засунуть" кнопку в любое окно)!

свой контрол 300x253 Свой контрол в чужом окне

Скачать проект
P.S.S. Тестил на Win 8 x64, на других возможно не актуально

  Метки: , ,
  Gemorg
  Просмотров: 7 518
  Запись опубликована в 18:30

Заметка на рабочий стол

Вчера нашел одну интересную статью на Хабре, понравилась и решил опубликовать на блоге.

Истинное название - "Окна неправильной формы"

Загрузить проект

Stiker Заметка на рабочий стол

  Метки:
  Евгений
  Просмотров: 4 381
  Запись опубликована в 03:51

Страницы:«123456789101112»