Перетаскиваем файлы с компьютера в 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

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

  Метки:
  Евгений
  Просмотров: 4 695
  Запись опубликована в 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 059
  Запись опубликована в 18:30

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

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

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

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

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

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

Узнаем размер файла по ссылке

Точнее по прямой ссылке на файл.

Dim Кб As Double
Dim request As Net.HttpWebRequest = Net.HttpWebRequest.Create(TextBox1.Text) ' Обращаемся к нашей ссылке
request.Method = "GET" ' Методом GET
Dim responce As Net.HttpWebResponse = request.GetResponse() ' Получаем ответ
Кб = Val(responce.ContentLength.ToString) / 1024 ' Размер в Кб.
Кб = Math.Round(Кб, 1)
MsgBox("Размер файла - " & Кб & " кб")

UrlLength Узнаем размер файла по ссылке

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

Добавление программы в автозагрузку

Такой вариант не требует прав администратора.

' Добавляем в автозагрузку
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Start As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True) ' Возращаем заданый раздел с доступом к нему
Dim Имя_программы As String = IO.Path.GetFileName(Application.ExecutablePath) ' Имя нашей программы с расширением
Start.SetValue(Имя_программы, Application.ExecutablePath) ' Добавляем новое значение
End Sub
' Убираем из автозагрузки
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Start As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True) ' Возращаем заданый раздел с доступом к нему
Dim Имя_программы As String = IO.Path.GetFileName(Application.ExecutablePath) ' Имя нашей программы с расширением
Start.DeleteValue(Имя_программы) ' Удаляем наше ранее созданое значение
End Sub
  Метки:
  Евгений
  Просмотров: 5 622
  Запись опубликована в 12:59

Страницы:«1...37383940414243444546»