En este ejemplo usando las funciones proporcionadas por “Imports System.Management”(Win32_DiskDrive,Win32_PhysicalMedia) , se muestran el tipo el modelo y el Serial del disco Duro, les dejo el link
Entre las funciones que tenemos en el VB.net 2005 se encuentra una función que no ha sufrido ningún cambio desde el vb.6.0 y es la función Command(), la cual se encarga de recibir parámetros externos.
El código se coloca en el Form Load del formulario inicial para poder recibir el parámetro, el siguiente ejemplo muestra como recibir un único parámetro
If Command() = "dato" Then
MsgBox("parámetro correcto")
Else
MsgBox("parámetro incorrecto")
End If
y con esto tenemos una aplicación que recibe un parámetro externo, ahora bien también podemos enviar multiples parámetros utilizando la Función Split() para dividir una cadena de carateres que le enviarmos a nuestra aplicación por ejemplo un dato que convertiremos en tres parametros “parametro1,parametro2,parametro3″ le colocamos un Split() para que se dividan por la coma
split(Command(),",")
El Split lo asignamos a un array de la siguiente manera
Dim datos() as String
split(Command(),",")
Bien ya con esto definido podemos hacer nuestra aplicación que recibe multiparámetros y el ejemplo queda de la siguiente manera
Dim datos() As String
datos = Split(Command(), ",")
If datos(0) = "dato1" Then
MsgBox(datos(0))
MsgBox(datos(1))
MsgBox(datos(2))
'tendrías que enviar miExe.exe dato1,dato2,dato3
MsgBox("parámetro correcto")
Else
MsgBox("parámetro incorrecto")
End If
El manejo de excepciones en visual basic.net ha variado un poco al respecto de cómo se solía hacer en visual basic 6.0 que era de esta manera:
Module Module1
Sub Main()
'opción de uso de on error
On Error Resume Next
'opcion de uso de on error a una etiqueta llamada datos
On Error GoTo Datos
Datos:
End Sub
End Module
Más sin embargo en vb.net se hace la recomendación de no usar esta opción que tenía Visual Basic, puesto que se ha sustituido por una opción un tanto más robusta y conocida en otros lenguajes también llamada €œTry-Catch€.
En este ejemplo se esta capturando la excepción y enviándola a una variable de tipo exeption
Module Module1
Sub Main()
Try
'Bloque try
Catch ex As Exception
Console.Write(ex)
'Console.Write(ex.InnerException) para una captura más
'amplia de la excepción
'para winforms,MsgBox(ex)
End Try
End Sub
End Module
Este ejemplo es una forma de usar el método €œTry-catch€, sin captura de exepción, pero no es aconsejado puesto que si hay algún error pasa de largo y no avisa de nada.
Module Module1
Sub Main()
Try
'Bloque try
Catch
End Try
End Sub
End Module
El funcionamiento de esta función es básicamente sí ocurre algún error dentro del bloque Try, será campurado y puesto en una variable de tipo Exeption, tal como se muestra en el primer ejemplo.
De esta manera podemos tener un buen manejo de nuestros errores, tambien podemos manejar los errores de una manera un tanto más avanzada por ejemplo:
Module Module1
Sub Main()
Dim VarUno, VarDos, Restultado As Integer
Console.Write("ingreso un numero")
VarUno = CInt(Console.ReadLine())
Console.Write("ingreso el segundo")
VarDos = CInt(Console.ReadLine())
Restultado = CInt(VarUno / VarDos)
Try
Catch ex As InvalidCastException
'captura error en conversión de tipos
Console.Write("ingrese un numero correcto")
Catch ex As Exception When VarUno = 0
'caputa de exepcion explícita sobre una variable
'con determinado contenido
Console.Write("Ingrese un valor distinto a 0")
Catch ex As Exception
Console.Write(ex)
'para winforms,MsgBox(ex)
Finally
' esta parte es para finalizar nuestro
' nuestro proceso y si quiseiramos algún
' mensaje también lo podemos moner aqui
Console.Write("Fin de la transacción")
End Try
End Sub
End Module
Como se muestra en el ejemplo la captura de las exepciones puede ser manejada a un nivel en el cual nosotros podemos hacer de el manejo de expciones algo totalmente manejable, es recomendable tal como está en el ejemplo primero coloquemos las exepciones específicas para depués dejar paso a una expeción genérica en la cual el error se mostrará de una manera un poco menos comprensible para el usuario.