Grascias por tu comentario... Saludos
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
'Estructura de datos que almacena la gestión de conexiones
Public Structure dispositivo
Public dispTamaño As Integer
Public dispTipo As Integer
Public dispReserv As Integer
Public dispMask As Integer
End Structure
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
'Se ha producido un cambio en los dispositivos
Const deviceChange As Integer = &H219
'El sistema detecta un nuevo dispositivo
Const deviceArrival As Integer = &H8000
'Solicita retirada del dispositivo
Const deviceQueryRemove As Integer = &H8001
'Ha fallado la retirada del dispositivo
Const devideQueryRemoveFailed As Integer = &H8002
'Pendiente extracción del dispositivo
Const deviceRemovePending As Integer = &H8003
'Dispositivo extraído del sistema
Const deviceRemoveComplete As Integer = &H8004
' Volumen lógico (Se ha insertado un disco)
Const deviceTypeVolume As Integer = &H2
Select Case m.Msg
'Cambian los dispositivos del sistema
Case deviceChange
Select Case m.WParam.ToInt32
'Llegada de un dispositivo
Case deviceArrival
Dim devType As Integer = Marshal.ReadInt32(m.LParam, 4)
'Si es un volumen lógico..(unidad de disco)
If devType = deviceTypeVolume Then
Dim vol As dispositivo
vol = CType(Marshal.PtrToStructure(m.LParam, GetType(dispositivo)), dispositivo)
MessageBox.Show("Se insertó un dispositivo en la unidad " & LetraUnidad(vol.dispMask) & ".")
'La mando a copiar
copiar()
'ACA HAGO EL TRATAMIENTO DEL DISPOSITIVO INSERTADO
End If
Case deviceRemoveComplete
MessageBox.Show("Se retiró el dispositivo.")
End Select
End Select
'Ahora se usa el manejador predeterminado
MyBase.WndProc(m)
End Sub
Private Function LetraUnidad(ByVal unitmask As Integer) As Char
Dim units() As Char = {"A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P",
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
Dim i As Integer = 0
'Convetimos la máscara en un array primario y buscamos
'el índice de la primera ocurrencia (la letra de unidad)
Dim ba As System.Collections.BitArray
ba = New System.Collections.BitArray(System.BitConverter.GetBytes(unitmask))
For i = 0 To ba.Length
If ba(i) = True Then
Exit For
End If
Next
Return units(i)
End Function
Private Sub Organizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Organizar.Click
If TextBox1.Text = "" Then
MessageBox.Show("Seleccionar ruta origen", "Ruta...")
ElseIf TextBoxDestino.Text = "" Then
MessageBox.Show("Seleccione ruta Destino", "Ruta...")
End If
'Recorre el Listbox item por item
Try
For i As Integer = 0 To Me.ListBox1.Items.Count - 1
RutaOrigen = ListBox1.Items(i)
'Obtener el nombre del fichero
NDFichero = Path.GetFileName(RutaOrigen)
'Obtener la extensión del fichero
ExtFichero = Path.GetExtension(RutaOrigen)
'Le quito el punto para usarlo en el nombre de la carpeta
Dim MyChar() As Char = {"."}
NCConExt = ExtFichero.TrimStart(MyChar)
Console.WriteLine(NCConExt)
'Crea el directorio si no existe
If Not Directory.Exists(RutaDestino & "\" & NCConExt & "\") Then
Directory.CreateDirectory(RutaDestino & "\" & NCConExt & "\")
End If
'Prepara la ruta mas el fichero a copiar
RDestino = RutaDestino & "\" & NCConExt & "\" & ExtFichero
'Try
If System.IO.File.Exists(RDestino) Then
'<<El archivo a copiar ya existe en destino>>
'Obtiene nombre del archivo sin extensión
Dim sFileName As String = ExtFichero.Substring(0, ExtFichero.Length - ExtFichero.ToString.Length)
Dim num As Integer = Nothing
While System.IO.File.Exists(RDestino) 'Cambia el
num += 1
'Renombra archivo en destino. Ej: C:\Organizado\ext\file(1).ext
RDestino = String.Format("{0}{1}({2}){3}", RutaDestino & "\" & NCConExt & "\", sFileName, num, ExtFichero)
End While
End If
Try
If RadioButton1.Checked = True Then
File.Copy(CStr(RutaOrigen), RDestino, False)
Else
File.Move(CStr(RutaOrigen), RDestino)
End If
'Muestra el fichero que se esta copiando
RutDFichero.Text = RutaOrigen
RutDFichero.Update()
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try
FCopy.Text = "1" + Val(FCopy.Text)
FCopy.Update()
Next
Catch ex As Exception
MsgBox("No se realizó la operación por: " & ex.Message)
End Try
Dim result As Integer = MessageBox.Show("Operación terminada> Deseas limpiar los datos", "caption", MessageBoxButtons.YesNo)
If result = DialogResult.No Then
Exit Sub
ElseIf result = DialogResult.Yes Then
Limpiardatos()
End If
End Sub
for
File.Copy(RutaOrigen, RutaGF, True)
FCopy.Text = "1" + Val(FCopy.Text)
Me.Text = ListBox1.Items.Count.ToString() & ".Archivos"
Me.Refresh()
next
Imports Microsoft.Win32
Public Class Form1
Dim MOVIENDO As Boolean = False
Dim IMAGEN As Image
Dim MIX As Integer
Dim MIY As Integer
Dim valor As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Me.Location = New Point(1750, 900)
IMAGEN = Me.BackgroundImage
PINTA() 'COMENTARIOS EN EL PROCEDIMIENTO
End Sub
Public Sub PINTA()
Me.Opacity = 0 'FORM TRANSPARENTE
Threading.Thread.Sleep(100) 'PARA ASEGURAR QUE SEA TRANSPARENTE
'CREA UNA IMAGEN DE LO QUE HAY DEBAJO DEL FORM COMO FONDO
Dim BMP As Bitmap = New Bitmap(IMAGEN.Width, IMAGEN.Height)
Dim DIBUJO As Graphics = Graphics.FromImage(BMP)
DIBUJO.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size)
'AÑADE NUESTRA IMAGEN AL FONDO
DIBUJO.DrawImage(IMAGEN, 0, 0, BMP.Width, BMP.Height)
Me.BackgroundImage = BMP 'PONE EL MONTAJE COMO IMAGEN DEL FORM
Me.Opacity = 1 'DEVUELVE LA OPACIDAD NORMAL.
End Sub
Private Sub LabelMOVER_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LabelMOVER.MouseDown
'MEMORIZA LA POSICION DE LA ETIQUETA
MIX = MousePosition.X - Me.Location.X
MIY = MousePosition.Y - Me.Location.Y
Me.BackgroundImage = IMAGEN 'ELIMINA EL FONDO DE LA IMAGEN
Me.Opacity = 0.1 'PARA QUE SE VEA MENOS EL RECTANGULO DEL FORM
MOVIENDO = True 'INICIA EL MOVIMIENTO
End Sub
Private Sub LabelMOVER_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LabelMOVER.MouseMove
If MOVIENDO = True Then
Me.Location = New Point(MousePosition.X - MIX, MousePosition.Y - MIY) 'MUEVE EL FORM SEGUN EL CAMBIO DE POSICION DE LA ETIQUETA
End If
End Sub
Private Sub LabelMOVER_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LabelMOVER.MouseUp
PINTA() 'COMENTARIOS EN EL PROCEDIMIENTO
MOVIENDO = False 'FINALIZA EL MOVIMIENTO
End Sub
Private Sub LabelCERRAR1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LabelCERRAR1.Click
Me.Close()
End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
If valor = 0 Then
PictureBox1.Image = My.Resources.Cerrado
Dim ClaveRaíz As RegistryHive = RegistryHive.LocalMachine ' HKEY_LOCAL_MACHINE
' Crea un puntero de clave de Registro para HKEY_LOCAL_MACHINE en la máquina actual
Dim Clave = RegistryKey.OpenRemoteBaseKey(ClaveRaíz, Environment.MachineName) '<-- Para x64
' Crea las claves y valores en la localización especificada
Using key As RegistryKey = Clave.CreateSubKey("SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\", RegistryKeyPermissionCheck.ReadWriteSubTree)
key.SetValue("WriteProtect", 1, RegistryValueKind.DWord) 'Valor DWORD
End Using
valor = 1
Else
PictureBox1.Image = My.Resources.Open
Dim ClaveRaíz As RegistryHive = RegistryHive.LocalMachine ' HKEY_LOCAL_MACHINE
' Crea un puntero de clave de Registro para HKEY_LOCAL_MACHINE en la máquina actual
Dim Clave = RegistryKey.OpenRemoteBaseKey(ClaveRaíz, Environment.MachineName) '<-- Para x64
' Crea las claves y valores en la localización especificada
Using key As RegistryKey = Clave.CreateSubKey("SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\", RegistryKeyPermissionCheck.ReadWriteSubTree)
key.SetValue("WriteProtect", 0, RegistryValueKind.DWord) 'Valor DWORD
End Using
valor = 0
End If
End Sub
Private Sub PictureBox1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseHover
PictureBox1.Size = New Size(Width:=52, Height:=46)
End Sub
Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
PictureBox1.Size = New Size(Width:=41, Height:=36)
End Sub
End Class
Imports Microsoft.Win32
Public Class Form1
Dim MOVIENDO As Boolean = False
Dim IMAGEN As Image
Dim MIX As Integer
Dim MIY As Integer
Dim valor As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Me.Location = New Point(1750, 900)
IMAGEN = Me.BackgroundImage
PINTA() 'COMENTARIOS EN EL PROCEDIMIENTO
End Sub
Public Sub PINTA()
Me.Opacity = 0 'FORM TRANSPARENTE
Threading.Thread.Sleep(100) 'PARA ASEGURAR QUE SEA TRANSPARENTE
'CREA UNA IMAGEN DE LO QUE HAY DEBAJO DEL FORM COMO FONDO
Dim BMP As Bitmap = New Bitmap(IMAGEN.Width, IMAGEN.Height)
Dim DIBUJO As Graphics = Graphics.FromImage(BMP)
DIBUJO.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size)
'AÑADE NUESTRA IMAGEN AL FONDO
DIBUJO.DrawImage(IMAGEN, 0, 0, BMP.Width, BMP.Height)
Me.BackgroundImage = BMP 'PONE EL MONTAJE COMO IMAGEN DEL FORM
Me.Opacity = 1 'DEVUELVE LA OPACIDAD NORMAL.
End Sub
Private Sub LabelMOVER_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LabelMOVER.MouseDown
'MEMORIZA LA POSICION DE LA ETIQUETA
MIX = MousePosition.X - Me.Location.X
MIY = MousePosition.Y - Me.Location.Y
Me.BackgroundImage = IMAGEN 'ELIMINA EL FONDO DE LA IMAGEN
Me.Opacity = 0.1 'PARA QUE SE VEA MENOS EL RECTANGULO DEL FORM
MOVIENDO = True 'INICIA EL MOVIMIENTO
End Sub
Private Sub LabelMOVER_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LabelMOVER.MouseMove
If MOVIENDO = True Then
Me.Location = New Point(MousePosition.X - MIX, MousePosition.Y - MIY) 'MUEVE EL FORM SEGUN EL CAMBIO DE POSICION DE LA ETIQUETA
End If
End Sub
Private Sub LabelMOVER_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LabelMOVER.MouseUp
PINTA() 'COMENTARIOS EN EL PROCEDIMIENTO
MOVIENDO = False 'FINALIZA EL MOVIMIENTO
End Sub
Private Sub LabelCERRAR1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LabelCERRAR1.Click
Me.Close()
End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
If valor = 0 Then
PictureBox1.Image = My.Resources.Cerrado
Dim root As RegistryHive = RegistryHive.LocalMachine
Dim subkey As String = "SYSTEM\CurrentControlSet\Control\StorageDevicePolicies"
Dim value As String = "WriteProtect"
Dim data As String = "1"
Using key As RegistryKey = RegistryKey.OpenBaseKey(root, RegistryView.Registry64)
key.CreateSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree).
SetValue(value, data, RegistryValueKind.String)
End Using
valor = 1
Else
PictureBox1.Image = My.Resources.Open
Dim root As RegistryHive = RegistryHive.LocalMachine
Dim subkey As String = "SYSTEM\CurrentControlSet\Control\StorageDevicePolicies"
Dim value As String = "WriteProtect"
Dim data As String = "0"
Using key As RegistryKey = RegistryKey.OpenBaseKey(root, RegistryView.Registry64)
key.CreateSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree).
SetValue(value, data, RegistryValueKind.String)
End Using
valor = 0
End If
End Sub
Private Sub PictureBox1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseHover
PictureBox1.Size = New Size(Width:=52, Height:=46)
End Sub
Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
PictureBox1.Size = New Size(Width:=41, Height:=36)
End Sub
End Class