elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ayuda en VB.NET
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda en VB.NET  (Leído 3,453 veces)
**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
ayuda en VB.NET
« 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:


En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.872



Ver Perfil
Re: ayuda en VB.NET
« Respuesta #1 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


« Última modificación: 19 Septiembre 2017, 23:06 pm por Eleкtro » En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
Re: ayuda en VB.NET
« Respuesta #2 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:
En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.872



Ver Perfil
Re: ayuda en VB.NET
« Respuesta #3 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.
« Última modificación: 20 Septiembre 2017, 00:08 am por Eleкtro » En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
Re: ayuda en VB.NET
« Respuesta #4 en: 20 Septiembre 2017, 00:23 am »

Gracias Elektro tenias razon en
Citar
Añade un linebreak: " _" o junta las lineas
solucione los errores.
« Última modificación: 22 Enero 2019, 22:06 pm por **Aincrad** » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines