Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: sysfactory en 18 Julio 2013, 01:50 am



Título: llamar funcion equivalente a shell desde window mobile
Publicado por: sysfactory en 18 Julio 2013, 01:50 am
Hola amigos
soy nuevo en el foro
mi nombre es Manuel
estoy programando una es400 de motorola
y me encuentro que la funcion shell para llamar a un exe no es compatible
estoy revisando este codigo pero no me funciona

se trata de utilizar el metodo Process

Código
  1. Dim ProgramaConRuta As String
  2.        ProgramaConRuta = "gTimeSync.exe"
  3.        Dim Parametro As String
  4.        Parametro = " -u"
  5.        Dim ERROR_FILE_NOT_FOUND As Integer = 2
  6.        Try
  7.            Dim myProcess As Process = System.Diagnostics.Process.Start(ProgramaConRuta, Parametro)
  8.            Beep()
  9.        Catch ex As ComponentModel.Win32Exception
  10.            If ex.NativeErrorCode = ERROR_FILE_NOT_FOUND Then
  11.                MsgBox("Error: " & ex.Message & " ", MsgBoxStyle.Critical, "Comprueba la ruta del programa")
  12.            End If
  13.        End Try
  14. [/url]
  15. si alguien sabe como hacer se lo voy a agradecer
  16. saludos


Título: Re: llamar funcion equivalente a shell desde window mobile
Publicado por: Eleкtro en 18 Julio 2013, 06:14 am
estoy revisando este codigo pero no me funciona

Hola, Manuel, Si no nos proporcionas el mensaje de la excepción o nos dices como mínimo en que línea tienes dicho error, ¿como esperas que te podamos ayudar?.

El código en si mismo es correcto, la sintaxis es correcta, debería funcionar...

Veo que escribes todos los namespaces, si no importas las referencias entonces me imagino que el error lo tienes aquí:
Código
  1. Catch ex As ComponentModel.Win32Exception

En ese caso importa "system" o modifica lal ínea, así:
Código
  1. Catch ex As System.ComponentModel.Win32Exception

No veo que pueda existir ningún otro error en ese código, o estás hablando de esa linea, o el executable no está donde debería estar... una de dos.


EDITO:

Prueba así...

Código
  1. Imports System
  2. Imports System.Diagnostics
  3.  
  4. Public Class Form1
  5.  
  6.    Const ERROR_FILE_NOT_FOUND As Integer = 2
  7.  
  8.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown
  9.  
  10.        Dim ProgramaConRuta As String = "gTimeSync.exe"
  11.        Dim Parametro As String = "-u" ' No es necesario que le añadas un espacio delante.
  12.  
  13.        Try
  14.            Process.Start(ProgramaConRuta, Parametro)
  15.            Beep()
  16.        Catch ex As ComponentModel.Win32Exception
  17.            If ex.NativeErrorCode = ERROR_FILE_NOT_FOUND Then
  18.                MsgBox(String.Format("Error: ""{0}""", ex.Message), MsgBoxStyle.Critical, "Comprueba la ruta del programa.")
  19.            End If
  20.        End Try
  21.  
  22.    End Sub
  23.  
  24. end class

Saludos