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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: 1 2 3 4 [5] 6 7
41  Programación / Scripting / Comando de consola para instalar programas secuencialmente en: 1 Marzo 2016, 11:38 am
Hola

Quiero crear un archivo CMD de modo que al ejecutarlo, ejecute varios programas de instalación A, B, C, etc, y espere, a que termine un programa de instalación antes de iniciar el siguiente.

No se esto si esto podrá hacer desde la consola.

Gracias

42  Programación / .NET (C#, VB.NET, ASP) / Normalizar URL (pasar Url de UTF8 a Unicoce) en: 23 Febrero 2016, 16:26 pm
Hola

He conseguido normalizar una URL de esas con símbolos % y códigos hexadecimales. Por ejemplo:

Código:
"https%3A%2F%2Fes.noticias.locas.com%2Fdescubren-un-jupitiano-en-j%C3%BApiter-666999.html"

(no te molestes en ir que no existe, es inventado)

Agradezco la ayuda al foro y en especial a Elektro que me ha resuelto el tema de pasar un código UTF8 a Unicode.


Código
  1. Option Strict Off
  2. Imports System.Text.RegularExpressions
  3.  
  4. Public Class Form1
  5.  
  6.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.        Dim strUrl As String = ("https%3A%2F%2Fes.noticias.locas.com%2Fdescubren-un-ni%C3%B1o-jupitiano-en-j%C3%BApiter-666999.html")        'Enlace
  8.        MsgBox(NormalizarURL(strUrl))
  9.    End Sub
  10.  
  11.    Public Function NormalizarURL(ByVal strUrl as String) As String
  12.        'strUrl = strUrl.Replace("%3A%2F%2F", "://")
  13.        Dim PatternUTF8_1 As String = "(%..%..?)"                                                       'Expresiones regular
  14.        Dim PatternUTF8_2 As String = "(%..?)"                                                          'Expresiones regulares
  15.        Dim MyRegexUTF8_1 As New Regex(PatternUTF8_1, RegexOptions.IgnoreCase)                          'Regex para doble PatternUTF8_1
  16.        Dim MyRegexUTF8_2 As New Regex(PatternUTF8_2, RegexOptions.IgnoreCase)                          'Regex para doble PatternUTF8_2
  17.        Dim MyMatchUTF8_1 As Match = MyRegexUTF8_1.Match(CStr(strUrl))
  18.        Dim MyMatchUTF8_2 As Match = MyRegexUTF8_2.Match(CStr(strUrl))
  19.        While MyMatchUTF8_1.Success
  20.            Dim UTFChar As String = MyMatchUTF8_1.Groups(0).Value                                       'Obtiene el primer valor de cada coincidencia          
  21.            Dim HexChar1 As Byte = CType(Convert.ToInt32(UTFChar.Substring(1, 2), 16), Byte)                'Obtiene el valor entero del primer valor hexadecimal obtenido del código utf-8
  22.            Dim HexChar2 As Byte = CType(Convert.ToInt32(UTFChar.Substring(4, 2), 16), Byte)                    'Obtiene el valor entero del segundo valor hexadecimal obtenido del código utf-8
  23.            '//Convierte carácter hexadecimal UTF-8 a UNICODE por ejemplo "C3 BA" a "ú"
  24.            Dim CharUnicode As String = System.Text.Encoding.UTF8.GetString(New Byte() {HexChar1, HexChar2})
  25.            strUrl = strUrl.Replace(UTFChar, CharUnicode)                                                      'Reemplaza el carácter hexadecimal UTF-8 por Unicode
  26.            MyMatchUTF8_1 = MyMatchUTF8_1.NextMatch()                                                   'Continúe el bucle hasta la siguiente coincidencia.
  27.        End While
  28.        While MyMatchUTF8_2.Success
  29.            Dim UTFChar As String = MyMatchUTF8_2.Groups(0).Value
  30.            '//Convierte y remplaza un carácter hexadecimal a Unicode por ejemplo "2F" a "/"
  31.            strUrl = strUrl.Replace(UTFChar, Convert.ToChar(Convert.ToInt32(UTFChar.Substring(1, 2), 16)))
  32.            MyMatchUTF8_2 = MyMatchUTF8_2.NextMatch()                                                       'Continúe el bucle hasta la siguiente coincidencia.
  33.        End While
  34.        Return CStr(strUrl)
  35.    End Function
  36. End Class


Saludos

43  Programación / .NET (C#, VB.NET, ASP) / UTF8 A UNICODE en: 23 Febrero 2016, 10:48 am
Hola

Este código se supone me debería devolver una "á" pero en cambio devuelve letras chinas

Código
  1.                Dim UTFString As String = Convert.ToChar(Convert.ToInt32("C3A1", 16))
  2.        Dim Result As String = Encoding.Unicode.GetString(Encoding.UTF8.GetBytes(UTFString))
  3.        TextBox1.Text = Result


¿Alguien sabe por qué?
Saludos


info:

UTF-8 encoding table and Unicode characters

44  Programación / .NET (C#, VB.NET, ASP) / Normalizar un enlace de búsqueda de google en: 23 Enero 2016, 01:05 am
Hola

No consigo obtener el enlace a los que redirecciona google por ejemplo:

Código:
https://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiK3Ii9zr7KAhXD0RQKHekoC9kQFggcMAA&url=http%3A%2F%2Fwww.recursosvisualbasic.com.ar%2Fhtm%2Fvb-net%2F54-obtener-links-de-una-pagina-web.htm&usg=AFQjCNGMpwVIQ7z-vWEq6Urag9Vf_UAKGg&bvm=bv.112454388,d.d24

Redirecciona a...:

Código:
http://www.recursosvisualbasic.com.ar/htm/vb-net/54-obtener-links-de-una-pagina-web.htm


Yo utilizo el siguiente código para obtener el enlace al que redirecciona una determianda URL

Código
  1. #Region "Normalizar URL"
  2.    Public Function ResolverURL(ByVal strUrl As String) As String
  3.        Dim RedirectUrl As String = Nothing
  4.         strUrl = DecodeUrl(strUrl)
  5.        Try
  6.            Dim WebRequest As System.Net.HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(strUrl), System.Net.HttpWebRequest)
  7.            With WebRequest
  8.                .UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1"
  9.                'WebRequest.MaximumAutomaticRedirections = 1
  10.                .AllowAutoRedirect = True  '<==importante
  11.                '.ProtocolVersion = System.Net.HttpVersion.Version11
  12.                 .Method = "GET"
  13.                '.Timeout = 1000
  14.            End With
  15.  
  16.            Using webResponse As System.Net.HttpWebResponse = DirectCast(WebRequest.GetResponse, Net.HttpWebResponse)
  17.                RedirectUrl = webResponse.ResponseUri.AbsoluteUri
  18.                webResponse.Close() '<===importante
  19.            End Using
  20.        Catch ex As System.Net.WebException
  21.            If ex.Status = Net.WebExceptionStatus.NameResolutionFailure Then
  22.                MessageBox.Show("El Sitio no existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  23.            End If
  24.        End Try
  25.        Return RedirectUrl
  26.    End Function
  27.   Public Function DecodeUrl(ByVal strUrl As String) As String
  28.        Dim HexCaracter As String()
  29.        HexCaracter = strUrl.Split(CChar("%"))
  30.        For I As Integer = 1 To HexCaracter.Length - 1
  31.            Dim Cr As String = HexCaracter(I).Substring(0, 2)
  32.            Dim newCr As String = Convert.ToChar(Convert.ToInt32(Cr, 16))
  33.            strUrl = strUrl.Replace("%" & Cr, newCr)
  34.        Next
  35.        Return strUrl
  36.    End Function
  37. #End Region
  38.  


Este código se usa del modo siguiente:
Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        TextBox1.Text = ResolverURL(URL)
  5.    End Sub
  6.  

Sin embargo no me funciona con los enlaces que ofrece Google en el listado de búsqueda.

S2s



Una forma que he ideado es esta:

Código
  1.  
  2.   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.        Dim strUrl as String = "https://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwidgYbs98HKAhUJLhoKHRwBBzYQFggcMAA&url=https%3A%2F%2Fes.wikipedia.org%2Fwiki%2FAlbert_Einstein&usg=AFQjCNEpx7ZvmsTJayPwnY-RF0W1AbWLGw&bvm=bv.112454388,d.d2s"
  4.  
  5.         strUrl = DecodeUrl(strUrl)
  6.  
  7.        Dim uri As New Uri(strUrl)
  8.        Dim dirs As String = uri.GetComponents(UriComponents.AbsoluteUri, UriFormat.UriEscaped)
  9.  
  10.        Try
  11.            Dim dirArray As String() = dirs.Split(CChar("="))
  12.            For I As Integer = 1 To dirArray.Length - 1
  13.                If dirArray(I).Length > 4 Then
  14.                    If dirArray(I).Substring(0, 4) = "http" Then
  15.                        strUrl = dirArray(I).Replace("&usg", "")
  16.                        Exit For
  17.                    End If
  18.                End If
  19.            Next
  20.        Catch ex As Exception
  21.        End Try
  22.  
  23.        TextBox1.Text = strUrl
  24.  
  25. End Sub
  26.    Public Function DecodeUrl(ByVal strUrl As String) As String
  27.        Dim HexCaracter As String()
  28.        HexCaracter = strUrl.Split(CChar("%"))
  29.        For I As Integer = 1 To HexCaracter.Length - 1
  30.            Dim Cr As String = HexCaracter(I).Substring(0, 2)
  31.            Dim newCr As String = Convert.ToChar(Convert.ToInt32(Cr, 16))
  32.            strUrl = strUrl.Replace("%" & Cr, newCr)
  33.        Next
  34.        Return strUrl
  35.    End Function
  36.  

Pero mi intención es que conseguir un método general que sirva para cualquier URL sin afectar a URLs que no redireccionen. De otro modo tengo que hacer que el programa determine si es redireccionable y si lo es, si éste es de Google para aplicar el código que acabo de mostrar... Esto no me convence.




Bueno, lo he resuelto de la siguiente manera. Que como dije  obtiene la URL a la que redirecciona de forma selectiva. Si es de Google aplica un método y si no lo es aplica el otro.

Código
  1. #Region "Normalizar URL"
  2.    Public Function NormalizarUrl(ByVal strUrl As String) As String
  3.        strUrl = DecodeUrl(strUrl)
  4.        Task.Factory.StartNew(Sub()
  5.                                  If strUrl.Contains("www.google.es/url?") = True Then
  6.                                      '//Obtiene la Url a la que redirecciona
  7.                                      strUrl = ResolverUrlGoogle(strUrl)
  8.                                  Else
  9.                                      '//Si el Url redireciona a otra Url obtiene la Url a la que redirecciona
  10.                                      strUrl = ResolverURL(strUrl)
  11.                                  End If
  12.                                  ComboBox1.Invoke(DirectCast(Sub() ComboBox1.Text = strUrl, MethodInvoker))
  13.                              End Sub)
  14.  
  15.  
  16.        Return strUrl
  17.    End Function
  18.    Public Function DecodeUrl(ByVal strUrl As String) As String
  19.        Dim HexCaracter As String()
  20.        HexCaracter = strUrl.Split(CChar("%"))
  21.        For I As Integer = 1 To HexCaracter.Length - 1
  22.            Dim Cr As String = HexCaracter(I).Substring(0, 2)
  23.            Dim newCr As String = Convert.ToChar(Convert.ToInt32(Cr, 16))
  24.            strUrl = strUrl.Replace("%" & Cr, newCr)
  25.        Next
  26.        Return strUrl
  27.    End Function
  28.    Public Function ResolverUrlGoogle(ByVal strUrl As String) As String
  29.  
  30.        Dim uri As New Uri(strUrl)
  31.        Dim dirs As String = uri.GetComponents(UriComponents.AbsoluteUri, UriFormat.UriEscaped)
  32.        Try
  33.            Dim dirArray As String() = dirs.Split(CChar("="))
  34.            For I As Integer = 1 To dirArray.Length - 1
  35.                If dirArray(I).Length > 4 Then
  36.                    If dirArray(I).Substring(0, 4) = "http" Then
  37.                        strUrl = dirArray(I).Replace("&usg", "")
  38.                        Exit For
  39.                    End If
  40.                End If
  41.            Next
  42.        Catch ex As Exception
  43.        End Try
  44.        Return strUrl
  45.    End Function
  46.    Public Function ResolverURL(ByVal strUrl As String) As String
  47.        Dim RedirectUrl As String = Nothing
  48.        strUrl = DecodeUrl(strUrl)
  49.  
  50.        Try
  51.            Dim WebRequest As System.Net.HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(strUrl), System.Net.HttpWebRequest)
  52.            With WebRequest
  53.                WebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1"
  54.                'WebRequest.MaximumAutomaticRedirections = 1
  55.                WebRequest.AllowAutoRedirect = True  '<==importante
  56.            End With
  57.            Using webResponse As System.Net.HttpWebResponse = DirectCast(WebRequest.GetResponse, Net.HttpWebResponse)
  58.                RedirectUrl = webResponse.ResponseUri.AbsoluteUri
  59.                webResponse.Close() '<===importante
  60.            End Using
  61.        Catch ex As System.Net.WebException
  62.            If ex.Status = Net.WebExceptionStatus.NameResolutionFailure Then
  63.                MessageBox.Show("El Sitio no existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  64.            End If
  65.        End Try
  66.        Return RedirectUrl
  67.    End Function
  68. #End Region
  69.  

Sirve para evitar errores al usar System.Net.HttpWebRequest o System.Net.WebClient con URLs que redireccionan.



NOTA:
He hecho algunas correcciones y modificaciones respecto al código que expuse ayer.
Disculpen las molestias


He añadido por ejemplo esta función:

Código
  1. Public Function DecodeUrl(ByVal strUrl As String) As String
  2.        Dim HexCaracter As String()
  3.        HexCaracter = strUrl.Split(CChar("%"))
  4.        For I As Integer = 1 To HexCaracter.Length - 1
  5.            Dim Cr As String = HexCaracter(I).Substring(0, 2)
  6.            Dim newCr As String = Convert.ToChar(Convert.ToInt32(Cr, 16))
  7.            strUrl = strUrl.Replace("%" & Cr, newCr)
  8.        Next
  9.        Return strUrl
  10.    End Function

Ya que yo creía que sólo había que sustituir "%3A" por ":" y "%2F" por "/". Entonces he visto otro enlace con "%3F" y comprendí que se trata de número de un carácter convertido a hexadecimal. Es decir 3A = 58 que equivale a ":" y 2F = 47 que equivale a "/". He hecho esa función para sustituir cualquier código hexadecimal por su carácter correspondiente. 


Por otro lado la función ResolverUrlGoogle tampoco estaba bien del todo . No todos los enlaces, pasados por split se encuentran el la posición 10 del array. Así que hago que  busque la url dentro del array. De todos modos aún no está perfecto  porque hay enlaces, aunque poco comunes, que se devuelven incompletos o con algún carácter demás.


Sl2s
45  Programación / .NET (C#, VB.NET, ASP) / Problema con Expresiones regulares en: 19 Diciembre 2015, 19:12 pm
Hola

La verdad no comprendo como funcionan las expresiones regulares, pese a que hay ejemplos en la ayuda msdn.

Estoy intentando obtener la Url de las imágenes de una página html junto con los valores Width, height y alt.

El problema está en que no siempre está en el mismo orden. Es decir primero puede establecerse src después height, width y luego alt:

<img src="..." height="128" width="128" alt"..."/>

También:

<img src="..." width"128" height="128" alt"..."/>


O por el contrario, establecerse el width o el heigth antes que el src:

  <img width"128" height="128" src="..."  alt"..."/>

  <img height"128" width="128" src="..."  alt"..."/>


Utilizando el sistema de las expresiones regulares con Regex ocurre que sólo obtiene los valores siempre y cuando estén el orden establecido en el pattern:

Código
  1. Dim Pattern As String = "<img[^>]+(src)\s*=\s*""?([^ "">]+)""?(?:[^>]+(width|height)\s*=\s*""?([^ "">]+)""?\s+(height|width)\s*=\s*""?([^ "">]+)""?)?(?:[^>]+(alt)\s*=\s*""?([^"">]+)""?)?"
  2.  
  3.        Dim re As New Regex(Pattern, RegexOptions.IgnoreCase)
  4.        Dim m As Match = re.Match(code)
  5.  
  6.        While m.Success
  7.  
  8.            For I As Integer = 0 To m.Groups.Count - 1
  9.                ListBox1.Items.Add(m.Groups(I).Value)
  10.            Next
  11.  
  12.        End While


'¿Como puedo obtener los valores independientemente del orden en que se encuentren?

Necesito encontrar los valores Width, height independientemente de si están antes que el src o después


Gracias
46  Foros Generales / Dudas Generales / Pedidos de almacén con carácteres extraños en: 13 Diciembre 2015, 18:44 pm
Hola

En la empresa donde trabajo los pedidos aparecen con símbolos extraños en sustitución de á,è,ó,...,ñ y ç, que son del tipo á, Ã-, etc
 
Creo que podría ser que el sistema tiene como configuración regional la alfabetización inglesa, pero no estoy seguro de si es por eso o del programa que imprime los pedidos.

¿Alguna idea?

Gracias
47  Foros Generales / Foro Libre / Convenio de Prácticas el nuevo timoempleo en: 2 Diciembre 2015, 12:34 pm
Hola

España es el país de los pillos, los tramposos, los estafadores, y los listillos... :¬¬

Los/as empresarios/as españoles/as,  se han sacado de la manga una forma de conseguir trabajadores/as GRATIS y se llama 'Convenio de Prácticas (becarios)'. Vale no es nuevo pero enseguida entenderás porqué lo digo.

Ya no les basta con contratar a trabajadores con 'mínima discapacidad' (si estás en silla de ruedas no les vales), para beneficiarse de ayudas y bonificaciones. Con trabajadores que lo mismo tienen una quemadura con secuelas o un poco de sordera. En fin buscan trabajadores que puedan cumplir y que tengan alguna 'tara' los suficientemente importante como para que disponga de un certificado  de discapacidad, pero que sea la más mínima posible y así poder beneficiarse de su contratación.




Ahora la moda es el Convenio de Prácticas. Durante hace un mes, más o menos, me estoy encontrando ofertas de empleo bastante a menudo demandando trabajadores dispuestos a trabajar por convenio, es decir SIN CONTRATO.

Existe el Convenio de Prácticas y Contrato de Prácticas. El primero es sin contrato  y el segundo es con contrato y sueldo.

Curiosamente se está demandando mucho para trabajos de baja cualificación. Por favor, ¿becario para mozo de almacén? No se si reír o llorar. Así que yo voy a la universidad y estudio por ejemplo...periodismo, y me contratan de becario para preparar pedidos en un almacén, o descargar y cargar camiones. Alucino en colores

Pues a esto hemos llegado.

NO ACEPTÉIS ESTOS TRABAJOS sin no cumplís los requisitos que ahora mencionaré, pues si no es así, te están tomando el pelo.



Requisitos para poder realizar un convenio de prácticas
Código:
-	Estar matriculado en una Universidad o un centro de formación autorizado para la firma de convenios de prácticas con empresas.
- Que la actividad de las prácticas esté relacionada con la formación del estudiante.
- Haber superado el 50% de los créditos necesarios para obtener la titulación.
- Si se trata de prácticas curriculares (incluidas en el plan de estudios), el estudiante debe estar matriculado en la asignatura vinculada a esas prácticas.
- No tener relación contractual alguna con la empresa o institución en la que se vayan a realizar las prácticas.

OJO  :rolleyes:
Que la actividad de las prácticas esté relacionada con la formación del estudiante.

Fuente:
primerempleo


En definitiva, ¿Tienes más de cuarenta? Pues se pasan por el forro de los huevos toda tu experiencia, tus títulos  (mira que me dieron la vara con lo de la ESO y el Bachillerato, lo tengo ¿y para qué?) . Se pasan por el forro todo, lo que quieren es ahorrarse dinerito y se les ocurre la brillante idea de contratar a estudiantes de Universidad, sin contrato y puede que sin pagar, porque aunque deban puede que no lo hagan.


Luego importan el black friday para incentivar el consumo, porque quieren que compremos pero no que cobremos.

Si no cobramos, no compramos, si cobramos poco, compramos poco, así de simple.

¡Que no te tomen el pelo!

Se nota que estoy enfadado ¿no? pues sí , y mucho.




48  Programación / .NET (C#, VB.NET, ASP) / Clase y propiedades con Webbrowser en: 29 Noviembre 2015, 14:25 pm
Hi

Lo que intento es lo siguiente:
-Obtengo código fuente de una página y lo cargo en A
-Cargo la página en el Webbrowser:  WB.DocumentText= A
-Cuando cargue la página llama al evento ReadWeb
-ReadWeb obtiene datos en modo lista y lo Carga en una variable List
-Desde Button_Click llamo a la clase  e intento obtener dicha lista.

Problema: No puedo obtener dicha lista.

Código
  1. Class clsGetDataWeb
  2.    Dim Lista As New List(Of String)
  3.    Dim WB As New WebBrowser
  4.    Dim strUrl As String = "http://www...."
  5.    Dim WebSource As String = Nothing
  6.  
  7.  
  8.    Public Sub GetDataWeb()
  9.  
  10.        '//OBTIENE EL CÓDIGO FUENTE DE LA PÁGINA
  11.        Try
  12.            WebSource = GetWebSource(strUrl) 'Obtiene el código de la página
  13.        Catch ex As Exception
  14.            MessageBox.Show(ex.Message)
  15.            Exit Sub
  16.        End Try
  17.  
  18.        'LLama al evento DocumentCompletes
  19.        AddHandler WB.DocumentCompleted, AddressOf WB_DocumentCompleted
  20.  
  21.        'Carga el código html en WB
  22.        WB.ScriptErrorsSuppressed = True
  23.        WB.DocumentText = WebSource
  24.  
  25.  
  26.    End Sub
  27.    Private Sub WB_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
  28.            ReadWeb(WB)
  29.    End Sub
  30.    Private Sub ReadWeb(ByVal WBrowser As WebBrowser)
  31.        Dim document As System.Windows.Forms.HtmlDocument = WBrowser.Document
  32.        Dim doc As HtmlDocument = WBrowser.Document
  33.        Dim divs As HtmlElementCollection = doc.GetElementsByTagName("td")
  34.        Lista.Clear()
  35.        For Each div As HtmlElement In divs
  36.            If div.GetAttribute("classname") = "Canción" Then Lista.Add(div.InnerText)
  37.        Next
  38.        Lista= Lista.Distinct.ToList
  39.    End Sub
  40.  
  41.    Private Function GetWebSource(ByVal strUrl As String) As String
  42.           ...AQUÍ CÓDIGO PARA OBTENER EL CÓDIGO FUENTE DE LA PÁGINA WEB
  43. Return CódigoFuente
  44.    End Function
  45.  
  46.    Public ReadOnly Property ParameterNames() As IEnumerable(Of String)
  47.        Get
  48.            Return New List(Of String)(Lista)
  49.        End Get
  50.    End Property
  51.  
  52. End Class
  53.  
  54. #End Region


Y desde el un evento click:

Código
  1. '//Llamo a
  2. Dim ClassDW As New clsGetDataWeb
  3.        ClassDW.GetDataWeb()
  4.        For Each N As String In ClassDW.ParameterNames
  5.            ListBox1.Items.Add(n)
  6.        Next


He constatado por puntos de interrupción que el código de la página lo obtiene y la lista también. Creo que el problema tiene relación con Evento DocumentCompleted y la propiedad Get

parace como si se estableciese la propiedad antes de que se obtenga la lista

Gracias

[SOLUCIONADO]

Era lo que yo pensaba  :-\

Se carga la propiedad antes de que se obtenga la lista. Para solucionarlo he añadido un simple código de espera
Código
  1.    Public ReadOnly Property ParameterNames() As System.Collections.Generic.ICollection(Of String)
  2.        Get
  3.  
  4.            While [LISTA].Count = 0
  5.                My.Application.DoEvents()
  6.            End While
  7.  
  8.            Return New List(Of String)([LISTA])
  9.        End Get
  10.    End Property
49  Programación / .NET (C#, VB.NET, ASP) / Cambiar estilo de las ventanas (invertir, quitar botones, bloquear, etc) en: 27 Noviembre 2015, 19:07 pm
Hola

He creado este código para cambiar el estilo de las ventanas, se puede invertir la barra de título sin alterar el resto del form, bloquear el form, quitar los botones, desactivar botones de la barra, cambiar la posición de título de la barra de título, quitar los bordes, mostrar el form como un popup menú, etc.

Los cambios son combinables en algunos casos.



CAMBIAR EL ESTILO DE LAS VENTANAS

Código
  1. #Region "Cambiar estilo de la ventana"
  2. Public Module modChangeStyleWindow
  3.    Const GWL_ID = (-12)
  4.    Const GWL_STYLE = (-16)
  5.    Const HWND_NOTOPMOST = -2
  6.    Const SWP_NOZORDER = &H4
  7.    Const SWP_NOSIZE = &H1
  8.    Const SWP_NOMOVE = &H2
  9.    Const SWP_FRAMECHANGED = &H20
  10.    Const SWP_DRAWFRAME = SWP_FRAMECHANGED
  11.  
  12.    Enum WindowsStyle
  13.        WS_SIZABLE = &H0                                'Con todos los botones y la barra de título
  14.        WS_SIZABLE_DISABLEMAXB = &HFFFFFFFFFFFFFFFF     'Desactiva el botón maximizar
  15.        WS_SIZABLE_DISABLEMINB = &HFFFFFFFFFFFE5E08     'Desactiva el botón minimizar
  16.        WS_DLGFRAME_DISABLE = &H5FD8220                 'Cuadro diálogo desactivado (no permite ninguna interacción con el form)
  17.        WS_DLGFRAME_FIXEDSINGLE = &HFFFFFFFFFFF9CA28    'Cuadro diálogo no redimensionable
  18.        WS_DLGFRAME_SIZABLE = &HFFFFFFFFFFFDC5B0        'Cuadro diálogo redimensionable
  19.        WS_DISABLED = &H8000000                         'Desactivado (no permite ninguna interacción con el form)
  20.        WS_SYSMENU_DISABLE = &H5F5E100                  'Desactiva el menú y desactivado              
  21.        WS_SYSMENU_SIZABLE = &HFFFFFFFFFFF8F350         'Desactiva el menú y redimensionable
  22.        WS_SYSMENU_FIXEDSINGLE = &HFFFFFFFFFFF4EC10     'Desactiva el menú y no es redimensionable
  23.        WS_FIXEDSINGLE = &HFFFFFFFFFFFCEAF0             'No redimensionable
  24.        WS_FIXEDSINGLE_DISABLEMAXB = &HFFFFFFFFFFFBBA40 'No redimensionable y desactiva el botón maximizar
  25.        WS_FIXEDSINGLE_DISABLEMINB = &HFFFFFFFFFFFAEF20 'No redimensionable y desactvia el botón minimizar
  26.        WS_NOBORDER = &H325AA0                          'Sin bordes
  27.        WS_FLAT3D = &HB1FE68                            'Sin bordes con línea exterior
  28.        WS_POPUP = &H712CA8                             'Menú Popup
  29.    End Enum
  30.  
  31.    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
  32.    Private Function SetWindowLong(ByVal hwnd As IntPtr, _
  33.                                          ByVal nIndex As Integer, _
  34.                                          ByVal dwNewLong As Integer) As Integer
  35.    End Function
  36.  
  37.  
  38.    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=False)> _
  39.    Private Function SetWindowPos(ByVal hwnd As IntPtr, _
  40.                                         ByVal hWndInsertAfter As IntPtr, _
  41.                                         ByVal X As Integer, _
  42.                                         ByVal y As Integer, _
  43.                                         ByVal cx As Integer, _
  44.                                         ByVal cy As Integer, _
  45.                                         ByVal wFlags As Integer) As Integer
  46.    End Function
  47.  
  48.  
  49.    <System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint:="GetWindowLongA", SetLastError:=True)> _
  50.    Private Function GetWindowLong(ByVal hWnd As IntPtr, _
  51.                                          <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.I4)> ByVal nIndex As Integer) As Integer
  52.    End Function
  53.  
  54.    Public Sub ChangeStyleWindow(ByVal hwnd As IntPtr, ByVal StyleForm As Integer, ByVal SetStyle As Boolean)
  55.        'mantiene el tamaño de la ventana
  56.        Dim stl As Integer = GetWindowLong(hwnd, GWL_STYLE)
  57.  
  58.        Select Case SetStyle
  59.            '//Solo Ventana 'Sizable'
  60.            'Case True : If stl = &H16CF0000 Then stl += StyleForm
  61.            'Case False : If stl = &H16CF0000 + StyleForm Then stl -= StyleForm
  62.            '//Cualquier tipo de ventana u objeto con handle
  63.            Case True : stl += StyleForm
  64.            Case False : stl -= StyleForm
  65.        End Select
  66.  
  67.        SetWindowLong(hwnd, GWL_STYLE, stl)
  68.        Call SetWindowPos(hwnd, HWND_NOTOPMOST, Nothing, Nothing, Nothing, Nothing, _
  69.        SWP_NOZORDER + SWP_NOSIZE + SWP_NOMOVE + SWP_DRAWFRAME)
  70.    End Sub
  71.  
  72. End Module
  73. #End Region
  74.  


CAMBIAR EL ESTILO DE LA BARRA
Código
  1. Region "Cambiar estilo de la Barra de Título"
  2. Module modChangeStyleBar
  3.    Const GWL_ID = (-12)
  4.    Const GWL_STYLE = (-16)
  5.    Const GWL_EXSTYLE = (-20)
  6.    Const HWND_NOTOPMOST = -2
  7.    Const SWP_NOZORDER = &H4
  8.    Const SWP_NOSIZE = &H1
  9.    Const SWP_NOMOVE = &H2
  10.    Const SWP_FRAMECHANGED = &H20
  11.    Const SWP_DRAWFRAME = SWP_FRAMECHANGED
  12.  
  13.    Enum WStyleBarTitle
  14.        WStB_NORMAL_THICKBORDER = &H200                             'Normal con borde ancho
  15.        WStB_NORMALCAPTIONLEFT = &H0                                'Título a la izquierda
  16.        WStB_NORMAL_CAPTIONRIGHT = &H1000                           'Título a la derecha
  17.        WStB_INVERT_CAPTIONLEFT = &H405000                          'Invertido con título a la izquierda
  18.        WStB_INVERT_CAPTIONRIGHT = &H400000                         'Invertido con título a la derecha
  19.        WStB_TOOLWINDOW_CAPTIONLEFT = &H6590                        'Tool window con título a la izquierda y borde fino
  20.        WStB_TOOLWINDOW_CAPTIONRIGHT = &H5580                       'Tool window con título a la derecha y borde fino
  21.        WStB_TOOLWINDOW_THICKBORDER_CAPTONLEFT = &H68F              'Tool window con título a la izquierda y borde grueso
  22.        WStB_TOOLWINDOW_THICKBORDER_CAPTONRIGHT = &H5A80            'Tool window con título a la derecha y borde grueso
  23.        WStB_TOOLWINDOWS_INVERT_CAPTIONLEFT = &H401080              'Tool window Invertido con título a la izquierda y borde fino
  24.        WStB_TOOLWINDOWS_INVERT_CAPTIONRIGHT = &H400180             'Tool window invertido con título a la derecha y borde fino
  25.        WStB_TOOLWINDOWS_INVERT_THICKBORDER_TITLELEFT = &H403390    'Tool window Invertido con título a la izquierda y borde grueso
  26.        WStB_TOOLWINDOWS_INVERT_THICKBORDER_TITLERIGHT = &H400290   'Tool window invertido con título a la derecha y borde grueso
  27.        WS_EX_DLGMODALFRAME = &H1
  28.        WS_EX_NOPARENTNOTIFY = &H4
  29.        WS_EX_TOPMOST = &H8
  30.        WS_EX_ACCEPTFILES = &H10                                    'Cambia el cursor cuando se arrastr un archivo a la ventana
  31.        WS_EX_TRANSPARENT = &H20
  32.        WS_EX_MDICHILD = &H40
  33.        WS_EX_TOOLWINDOW = &H80
  34.        WS_EX_WINDOWEDGE = &H100
  35.        WS_EX_CLIENTEDGE = &H200
  36.        WS_EX_CONTEXTHELP = &H400
  37.        WS_EX_RIGHT = &H1000
  38.        WS_EX_LEFT = &H0
  39.        WS_EX_RTLREADING = &H2000
  40.        WS_EX_LTRREADING = &H0
  41.        WS_EX_LEFTSCROLLBAR = &H4000
  42.        WS_EX_RIGHTSCROLLBAR = &H0
  43.        WS_EX_CONTROLPARENT = &H10000
  44.        WS_EX_STATICEDGE = &H20000
  45.        WS_EX_APPWINDOW = &H40000
  46.        WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE)
  47.        WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST)
  48.        WS_EX_LAYERED = &H80000
  49.        WS_EX_NOINHERITLAYOUT = &H100000 ' Disable inheritence of mirroring by children
  50.        WS_EX_LAYOUTRTL = &H400000 ' Right to left mirroring
  51.        WS_EX_COMPOSITED = &H2000000
  52.        WS_EX_NOACTIVATE = &H8000000
  53.    End Enum
  54.    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
  55.    Private Function SetWindowLong(ByVal hwnd As IntPtr, _
  56.                                          ByVal nIndex As Integer, _
  57.                                          ByVal dwNewLong As Integer) As Integer
  58.    End Function
  59.  
  60.  
  61.    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=False)> _
  62.    Private Function SetWindowPos(ByVal hwnd As IntPtr, _
  63.                                         ByVal hWndInsertAfter As IntPtr, _
  64.                                         ByVal X As Integer, _
  65.                                         ByVal y As Integer, _
  66.                                         ByVal cx As Integer, _
  67.                                         ByVal cy As Integer, _
  68.                                         ByVal wFlags As Integer) As Integer
  69.    End Function
  70.  
  71.  
  72.    <System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint:="GetWindowLongA", SetLastError:=True)> _
  73.    Private Function GetWindowLong(ByVal hWnd As IntPtr, _
  74.                                          <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.I4)> ByVal nIndex As Integer) As Integer
  75.    End Function
  76.  
  77.    'Estilo de la barra de título
  78.    Public Sub ChangeStyleBarWindow(ByVal hwnd As IntPtr, ByVal StyleBar As Integer)
  79.        SetWindowLong(hwnd, GWL_EXSTYLE, StyleBar)
  80.        Call SetWindowPos(hwnd, HWND_NOTOPMOST, Nothing, Nothing, Nothing, Nothing, _
  81.        SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME)
  82.    End Sub
  83. End Module
  84. #End Region



EJEMPLO DE USO


Si se aplican varias veces el mismo estilo se pueden obtener estilos curiosos.



Código
  1.    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        For i As Integer = 0 To 5
  3.            modChangeStyleWindow.ChangeStyleWindow(Me.Handle, WindowsStyle.WS_SYSMENU_FIXEDSINGLE, True)
  4.        Next i
  5.    End Sub


para modo popup:

Código
  1.   modChangeStyleWindow.ChangeStyleWindow(Me.Handle, WindowsStyle.WS_POPUP, True)


Para invertir la barra de título:
Código
  1.       Call modChangeStyleBar.ChangeStyleBarWindow(Me.Handle, modChangeStyleBar.WStyleBarTitle.WStB_INVERT_CAPTIONRIGHT)


Invertido y desactivado:
Código
  1.   Call modChangeStyleWindow.ChangeStyleWindow(Me.Handle, modChangeStyleWindow.WindowsStyle.WS_DISABLED, True)
  2.        Call modChangeStyleBar.ChangeStyleBarWindow(Me.Handle, modChangeStyleBar.WStyleBarTitle.WStB_INVERT_CAPTIONRIGHT)


Espero os sirva  ;)

Sl2s


Se me olvidaba, para restaurar la ventana establecer 'False'
'Activa el cambio
Código
  1. Call modChangeStyleWindow.ChangeStyleWindow(Me.Handle, modChangeStyleWindow.WindowsStyle.WS_DISABLED, True)

'Desactiva el cambio (en este caso se tendría que hacer con un timer o similar ya que WS_DISABLE no permite la interacción con el form ni con los controles que contiene)
Código
  1. Call modChangeStyleWindow.ChangeStyleWindow(Me.Handle, modChangeStyleWindow.WindowsStyle.WS_DISABLED, False)

sl2s
50  Programación / .NET (C#, VB.NET, ASP) / Importar APIs en: 24 Noviembre 2015, 00:45 am
Hola

///IMPORTAR APIs///
Quiero compartir esta código curioso para importar APIs de librerías DLL y de aplicaciones. Es muy útil.

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        Dim DialogoAbrir As New System.Windows.Forms.OpenFileDialog
  5.        DialogoAbrir.Title = "Abrir..."
  6.        DialogoAbrir.FilterIndex = 1
  7.        DialogoAbrir.Filter = "*.dll|*.dll|*.exe|*.exe"
  8.        DialogoAbrir.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System)
  9.        If DialogoAbrir.ShowDialog() = DialogResult.OK Then
  10. ImportAPI(DialogoAbrir.FileName)
  11.        End If
  12.  
  13.  
  14.  
  15.    End Sub
  16.    Sub ImportAPI(ByVal Path_Dll As String)
  17.  
  18.        '//VB6
  19.        'Dim Path_Link As String = DirProgramFiles & "\Microsoft Visual Studio\VB98\link.exe"
  20.  
  21.        '****IMPORTANTE****:
  22.        '//VB2010
  23.        'link.exe se encuentra en:
  24.        'C:\Archivos de programa\Microsoft Visual Studio 10.0\VC\bin\
  25.        'Tiene dependencia con 'mspdb100.dll' que se encuentra en:
  26.        'C:\Archivos de programa\Microsoft Visual Studio 10.0\Common7\IDE
  27.        'Haz una copia de link.exe en  ...\Common7\IDE de lo contrario dará error al no encontrar 'mspdb100.dll'
  28.  
  29.        '//VS2012 64bits
  30.        'link.exe se encuentra en:
  31.        'C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
  32.        'mspdb100.dll' se encuentra en:
  33.        'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
  34.  
  35.        Dim DirProgramFiles As String
  36.  
  37.        If Environment.Is64BitOperatingSystem Then
  38.            DirProgramFiles = (Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86))
  39.        Else
  40.            DirProgramFiles = (Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles))
  41.        End If
  42.  
  43.        Dim Path_Link As String  = (DirProgramFiles & "\Microsoft Visual Studio 10.0\Common7\IDE\link.exe")
  44.        Dim FileTemp As String = System.IO.Path.GetTempFileName     'Crea un archivo temporal
  45.        Dim C34 As String = Convert.ToChar(34)
  46.  
  47.        'Linea de comandos para link.exe
  48.        Dim StartLink As String = String.Format("{0}{1}{2} /dump /exports {3}{4}{5} /out:{6}{7}{8}", _
  49.                                                C34, Path_Link, C34, _
  50.                                                C34, Path_Dll, C34, _
  51.                                                C34, FileTemp, C34)
  52.        Try
  53.            'Ejecuta link.exe
  54.            Dim myProcess As New Process()
  55.            myProcess.StartInfo.UseShellExecute = False
  56.            myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  57.            myProcess.StartInfo.FileName = StartLink
  58.            myProcess.StartInfo.CreateNoWindow = True
  59.            myProcess.Start()
  60.        Catch ex As Exception
  61.            MessageBox.Show("No se encuentra link.exe")
  62.        End Try
  63.  
  64.  
  65.         Me.Cursor = Cursors.WaitCursor
  66.        System.Threading.Thread.Sleep(2000)
  67.        Me.Cursor = Cursors.Default
  68.  
  69.        Dim strBuffer As New System.IO.StreamReader(FileTemp)
  70.        TextBox1.Text = strBuffer.ReadToEnd
  71.        strBuffer.Close()
  72.        FileIO.FileSystem.DeleteFile(FileTemp)
  73.  
  74.    End Sub
  75.  
  76.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  77.  
  78.    End Sub
  79. End Class


Sl2




El método también se puede usar para obtener información a través de aplicaciones que usen comandos

Este ejemplo obtiene es el resultado de hacer: ping www.google.es

Código
  1.  
  2. Public Class Form1
  3.  
  4.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.  
  6.    End Sub
  7.  
  8.  
  9.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  10.  Dim sCommand As String = String.Format("""{0}"" /r ping {1} >", "cmd.exe", "www.elhacker.net")
  11.        TextBox1.Text = GetResultCommand(sCommand)
  12.    End Sub
  13.  
  14. #Region "GetResultCommand"
  15.    Public Function GetResultCommand(ByVal sCommandLine As String) As String
  16.        Dim FileTemp As String = System.IO.Path.GetTempFileName     'Crea un archivo temporal
  17.        Dim C34 As String = Convert.ToChar(34)
  18.        Dim Result As String = Nothing
  19.  
  20.  
  21.        sCommandLine = String.Format(sCommandLine & "{0}{1}{2}", C34, FileTemp, C34)
  22.  
  23.  
  24.        Try
  25.            Dim myProcess As New Process()
  26.            With myProcess
  27.                .StartInfo.UseShellExecute = False
  28.                .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  29.                .StartInfo.FileName = sCommandLine
  30.                .StartInfo.CreateNoWindow = True
  31.                .Start()
  32.            End With
  33.  
  34.        Catch ex As Exception
  35.            MessageBox.Show(ex.Message)
  36.        End Try
  37.  
  38.        Me.Cursor = Cursors.WaitCursor
  39.        System.Threading.Thread.Sleep(2000)
  40.  
  41.        Dim FileAccesible As Boolean = False
  42.        While FileAccesible = False
  43.            Try
  44.                Dim strBuffer As New System.IO.StreamReader(FileTemp, System.Text.Encoding.GetEncoding("ibm850"))
  45.                Result = strBuffer.ReadToEnd()
  46.                FileAccesible = True
  47.                strBuffer.Close()
  48.  
  49.            Catch ex As Exception
  50.                FileAccesible = False
  51.            End Try
  52.             My.Application.DoEvents()
  53.        End While
  54.        Me.Cursor = Cursors.Default
  55.        FileIO.FileSystem.DeleteFile(FileTemp)
  56.        Return Result
  57.    End Function
  58. #End Region
  59. End Class
  60.  

Mediante este...snippet, supongo. Se obtendría el resultado de una línea de comandos que usáramos en la consola de windows:


Código
  1. GetResultCommand(LÍNA DE COMANDO)

Es importante poner entre comillas la aplicación a la que llamamos:
""cmd.exe""

Código
  1. Dim sCommand As String = String.Format("""cmd.exe"" /r ping {0} ", "www.elhacker.net")

para menos lío también se puede llamar así:

Código
  1. Dim sCommand As String = String.Format("""{0}"" /r ping {1} ", "cmd.exe", "www.elhacker.net")

el caso es que la aplicación quede entre comillas.

[MODIFICACADO]
Bueno, he hecho una pequeña modificación porque me he dado cuenta que claro, no todas las aplicaciones con comandos tienen el mismo comando de salida. Por ejemplo link.exe tiene /out: y cmd.exe tiene '>'. Así que esto es mejor aplicarlo cuando establecemos el comando y no desde el snippet

Con lo cual quedaría así con link.exe:
Código
  1.      Dim sCommand As String = String.Format("""{0}"" /dump /exports {1} /out:", _
  2. "C:\Archivos de programa\Microsoft Visual Studio 10.0\Common7\IDE\link.exe", _
  3.    "c:\windows\system32\shell32.dll")
  4.        TextBox1.Text = GetResultCommand(sCommand)

o así en con cmd.exe:
Código
  1.   Dim sCommand As String = String.Format("""{0}"" /r ping {1} >", "cmd.exe", "www.elhacker.net")
  2.        TextBox1.Text = GetResultCommand(sCommand)

Y he modificado esta línea quitando '>':

Código
  1. sCommandLine = String.Format(sCommandLine & "{0}{1}{2}", C34, FileTemp, C34)

También he añadido:
Código
  1. System.Text.Encoding.GetEncoding("ibm850")

Que no se en otra compu, pero en la mía si no establezco esta codificación para leer el archivo no se ven correctamente las vocales con acento.

-------------------------------------------------------


         ALGUNOS COMANDOS INTERESANTES PARA OBTENER INFORMACIÓN
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r dir C: >", "cmd.exe")
         
     
Código:
Dim sCommand As String = String.Format("""{0}"" /r ping {1} >", "cmd.exe", "www.elhacker.net")
   
   Para mostrar todo el contenido de la tabla de rutas IP
   
Código:
Dim sCommand As String = String.Format("""{0}"" /r route print >", "cmd.exe")

      Muestra la configuración de TCP/IP completa de todos los adaptadores
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r ipconfig /all >", "cmd.exe")


        Muestra una lista de todos los controladores de dispositivo instalados y sus propiedades.
        [modo tabla]
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r driverquery >", "cmd.exe")
       [modo csv]
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r driverquery /fo csv >", "cmd.exe")


        Muestra los archivos en lista donde se ejecuta esta apliación
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r tree /f >", "cmd.exe")

        Muestra todos los archivos del directorio C: (puede tardar un poco según el disco)
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r tree c:\ /f >", "cmd.exe")


        [Este es muy buen comando]
        Muestra información de configuración detallada acerca de un equipo y su sistema operativo
        (puedes usar 'csv' o 'list' en lugar de 'table'
   
Código:
Dim sCommand As String = String.Format("""{0}"" /r systeminfo /fo table >", "cmd.exe")
       
   Para obtener información de un determinado host (sistema)
        comando= 'systeminfo /s HOST /fo table'
        Para(obtener) 'HOST'  escribe hostname en la consola y luego lo incorporas en el siguente
        comando, en este caso es 'mypc'
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r systeminfo /s mypc /fo table >", "cmd.exe")

        Muestra una lista de los servicios que se están ejecutando
Código:
Dim sCommand As String = String.Format("""{0}"" /r Net start  >", "cmd.exe")

        Muestra las conexiones activas
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r netstat >", "cmd.exe")

        Muestra todas las conexiones y puertos de escucha
        '
Código:
Dim sCommand As String = String.Format("""{0}"" /r netstat -a >", "cmd.exe")

        Muestra el ejecutable que crea cada conexión o puerto de(escucha)
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r netstat -b >", "cmd.exe")

        Muestra las estadísticas Ethernet. Se puede combinar con la opción()-s
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r netstat -e >", "cmd.exe")

        Muestra estadísticas por protocolo. De forma predeterminada,
        se muestran para IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP y
        UDPv; se puede utilizar la opción -p para especificar un
        subconjunto de los valores predeterminados
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r netstat -s >", "cmd.exe")


        CONSEJO:
        'ALGUNOS COMANDOS PERMITEN USAR TRES TIPOS DE LISTA [LIST|CSV|TABLE]
        usando CSV puedes acceder fácilmente a la información usando SPLIT
        MODO CSV: "infoA","InfoB","infoC","InfoD"
        Ejemplo:
        Devuelve la dirección de control de acceso a medios (MAC, media access control) y  lista de los protocolos de red asociados con cada la dirección de todas las tarjetas de red de cada equipo
        
Código:
Dim sCommand As String = String.Format("""{0}"" /r getmac  /fo csv /nh /v >", "cmd.exe")
       
Código:
Dim sCommand As String = String.Format("""{0}"" /r getmac  /s mypc /fo csv >", "cmd.exe")


Espero que os sirva

sl2  :D


[condejo]
Para un TextBox u otro control de texto usa la fuente Courier New para que las tablas se muestren de forma ordenada.
Páginas: 1 2 3 4 [5] 6 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines