Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: n3n3 en 21 Marzo 2015, 00:50 am



Título: CMD Visual Basic 2010
Publicado por: n3n3 en 21 Marzo 2015, 00:50 am
Hola amigos, estoy tratando de hacer una aplicacion la cual tiene un combobox en el cual al cargar el formulario se rellena con las unidades en el equipo, y un boton que hace todo.

Mi pequeña duda y error es que uso el comando "attrib" y para esto primero tengo que posicionarme en la unidad, en el cmd, todo me sale bien con el sendkeys, pero al momento de publicarla osea de empaquetarla para su instalacion, el sendkeys lo manda a la primera ventana activa y si el usuario tiene activas otras pues no funciona, quiero saber como hacerlo directamente con el process.diagnostic pero no e logrado me salga o de alguna otra manera, les comparto el codigo a ver si me pueden echar una mano.

Código:
Imports System.IO
Imports System
Imports System.Diagnostics
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim unidad As String

        unidad = ComboBox1.SelectedItem

        If unidad <> "" Then



            unidad = ComboBox1.SelectedItem.ToString.Substring(0, 2)

            MsgBox("Extrayendo archivos", MsgBoxStyle.OkOnly, "Informacion")

            ComboBox1.Enabled = False

            Shell("cmd.exe /k " + unidad)
            SendKeys.Send("attrib /s /d -r -h -s -a")
            SendKeys.Send("{ENTER}")
            SendKeys.Send("DEL *.lnk")
            SendKeys.Send("{ENTER}")
            SendKeys.Send("exit")
            SendKeys.Send("{ENTER}")
            TextBox1.Text = "El programa esta extrayendo sus archivos ocultos, por favor no presione ninguna tecla hasta completar el proceso ...  El programa le indicara Finalizado cuando termine de desinfectar sus archivos"
            TextBox1.Enabled = False

            If ProgressBar1.Value < ProgressBar1.Maximum Then
                ProgressBar1.Value += 5

                If ProgressBar1.Value = ProgressBar1.Maximum Then MsgBox("Finalizado!")

            End If
            Me.Show()
            Button1.Enabled = False
            Button2.Enabled = True


        Else
            MsgBox("Seleccione una unidad", MsgBoxStyle.Critical, "Error")

        End If









    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       

        Button2.Enabled = False
        For Each vUnidad As String In Directory.GetLogicalDrives()
            ComboBox1.Items.Add(vUnidad)
        Next vUnidad
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 5
        ProgressBar1.Value = 0

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub
End Class


Gracias, agradeceria algun codigo util!