Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: **Aincrad** en 19 Septiembre 2017, 22:33 pm



Título: ayuda en VB.NET
Publicado por: **Aincrad** en 19 Septiembre 2017, 22:33 pm
hola a todos.

hoy me he encontrado con un problema en vb.net que no puedo solucionar.

tengo este codigo:
Código
  1. Dim dirPath As String = Environment.ExpandEnvironmentVariables("%AppData%\Microsoft\Windows\Start Menu\Programs\Startup")
  2.        Try
  3.            For Each Archivo As String In My.Computer.FileSystem.GetFiles( _
  4.                                    dirPath, _
  5.                                    FileIO.SearchOption.SearchAllSubDirectories, _
  6.                                    "*.vbs", _
  7.                                    "*.cmd", _
  8.                                    "*.js", _
  9.                                    "*.wsf", _
  10.                                    "*.ink", _
  11.                                    "*.bat")
  12.                ListBox1.Items.Add(Archivo)
  13.                Form7.Show()
  14.            Next
  15.            ' errores  
  16.        Catch oe As Exception
  17.            MsgBox(oe.Message, MsgBoxStyle.Critical)
  18.        End Try

el código se encarga de buscar en la carpeta inicio  de windows todos los archivos con los formatos que aparecen.

Bueno lo que quiero es que si al buscar en la carpeta, no encuentra ningún archivo con ese formato me muestre un formulario. eso es todo .

en pocas palabras necesito saber como ubicar este codigo:

Código
  1. If cualquiercode Then
  2.    MsgBox("se encontraron archivos con formato .vbs-.bat-.ink-.cmd-.js")
  3. Else
  4.    form9.show()
  5. End If
  6.  

                                   no se si me comprenden. XD  :silbar:


Título: Re: ayuda en VB.NET
Publicado por: Eleкtro en 19 Septiembre 2017, 23:03 pm
En el otro post te expliqué varias cosas pero no veo que hayas intentado seguir los conejos...

Para hacer lo que quieres simplemente guarda en una variable la colección devuelta por la función My.Computer.FileSystem.GetFiles() y evalua el número de elementos de ésta. Ejemplo:

Código
  1. Imports Microsoft.VisualBasic.FileIO
  2. Imports System.Collections.ObjectModel
  3.  
  4. Public Class Form1
  5.  
  6.    Private Sub Test()
  7.  
  8.        Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup)
  9.        Dim fileExts As String() = {"*.vbs", "*.cmd", "*.js", "*.wsf", "*.ink", "*.bat"}
  10.  
  11.        Dim filePaths As ReadOnlyCollection(Of String) =
  12.            My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts)
  13.  
  14.        If (filePaths.Count <> 0) Then
  15.            With Me.ListBox1
  16.                .BeginUpdate()
  17.                .Items.AddRange(filePaths.ToArray())
  18.                .EndUpdate()
  19.            End With
  20.            MessageBox.Show(Me, String.Format("Se encontraron archivos con extensión: {{{0}}}", String.Join(", ", fileExts)), Me.Text,
  21.                            MessageBoxButtons.OK, MessageBoxIcon.Information)
  22.  
  23.        Else
  24.            My.Forms.Form9.Show()
  25.  
  26.        End If
  27.  
  28.    End Sub
  29.  
  30. End Class

PD: LAS PREGUNTAS SOBRE VB.NET VAN EN EL SUBFORO DE PROGRAMACIÓN .NET, NO DE VB6. Ya te advirtió un Coadmin, respeta las normas por favor.

Saludos


Título: Re: ayuda en VB.NET
Publicado por: **Aincrad** en 19 Septiembre 2017, 23:31 pm
gracias, pero me marca errores  :(

te señalo los errores en el code:

Código
  1. Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup)
  2.        Dim fileExts As String() = {"*.vbs", "*.cmd", "*.js", "*.wsf", "*.ink", "*.bat"}
  3.  
  4.        Dim filePaths As ReadOnlyCollection(Of String) = 'me marca el signo = como error dice Expression expected
  5.        My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts) 'ME SUBRAYA SearchOption y me dice 'SearchOption' is ambiguous, imported from the namespaces or types 'System.IO, Microsoft.VisualBasic.FileIO'.
  6.  
  7.        If (filePaths.Count <> 0) Then   'ME SUBRAYA filePaths y como solucion me muetra FileOption dice Name 'filePaths' is not declared.
  8.  
  9.            With Me.ListBox1
  10.                .BeginUpdate()
  11.                .Items.AddRange(filePaths.ToArray())
  12.                .EndUpdate()
  13.            End With
  14.            MessageBox.Show(Me, String.Format("Se encontraron archivos con extensión: {{{0}}}", String.Join(", ", fileExts)), Me.Text,
  15.                            MessageBoxButtons.OK, MessageBoxIcon.Information) 'ME SUBRAYA      , MessageBoxButtons.OK      y dice Expression is not a method.
  16.  
  17.  
  18.        Else
  19.            My.Forms.Form9.Show()
  20.  
  21.        End If
  22.  
  23.  

            si sirve de algo yo uso visual studio 2008.    :huh:


Título: Re: ayuda en VB.NET
Publicado por: Eleкtro en 19 Septiembre 2017, 23:59 pm
Código
  1. Dim filePaths As ReadOnlyCollection(Of String) = 'me marca el signo = como error dice Expression expected
  2.    My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts)

Código
  1. MessageBox.Show(Me, String.Format("Se encontraron archivos con extensión: {{{0}}}", String.Join(", ", fileExts)), Me.Text,
  2.                            MessageBoxButtons.OK, MessageBoxIcon.Information) 'ME SUBRAYA      , MessageBoxButtons.OK      y dice Expression is not a method.

Estás usando una versión antigua de Visual Studio / VB.NET. Añade un linebreak: " _" o junta las lineas.

Sugerencia adicional: actualiza tu entorno a VS2017 ( o en su defecto VS2013, como mínimo ) para programar con mucha mayor comodidad.



Código
  1. My.Computer.FileSystem.GetFiles(dirPath, SearchOption.SearchAllSubDirectories, fileExts) 'ME SUBRAYA SearchOption y me dice 'SearchOption' is ambiguous, imported from the namespaces or types 'System.IO, Microsoft.VisualBasic.FileIO'.

Es normal, el compilador encuentra una ambiguedad (dos o más coincidencias de un miembro con el mismo nombre en diferentes namespaces) entre la enumeración Microsoft.VisualBasic.FileIO.SearchOption y System.IO.SearchOption. Para resolverlo puedes especificar la importación del namespace adecuado en la cabecera del archivo ...tal y como yo hice en el código que te mostré:

Cita de: Elektro
Código
  1. Imports Microsoft.VisualBasic.FileIO

Saludos.


Título: Re: ayuda en VB.NET
Publicado por: **Aincrad** en 20 Septiembre 2017, 00:23 am
Gracias Elektro tenias razon en
Citar
Añade un linebreak: " _" o junta las lineas
solucione los errores.