Visual Basic.NET - Ayuda con comando cmd.

   
Vista:
Imágen de perfil de Evan Hailey

Ayuda con comando cmd.

Publicado por Evan Hailey (44 intervenciones) el 12/08/2017 16:49:04
Saludos, estoy tratando de ejecutar un comando de cmd pero no logro dar con lo correcto...

Tengo un emulador (ePSXe) con el cual creo un acceso directo al escritorio de windows, luego edito de forma manual su ruta agregándole comando y la ruta del rom (.iso). Esto en windows desde un acceso directo hace que el juego se ejecute directamente sin problemas, pero si quiero hacer lo mismo desde vb.net no funciona de ninguna manera que allá probado...

El ultimo método probado:

1
2
3
4
5
6
7
8
9
10
11
12
13
Dim myProcess = New Process()
Dim PathEmulator As String = "C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe"
Dim PathISO As String = Chr(34) & "I:\Tekken.iso" & Chr(34)
Dim Argumento As String = " -nogui -loadbin " & PathISO
 
myProcess.StartInfo.UseShellExecute = True
myProcess.StartInfo.FileName = PathEmulator
myProcess.StartInfo.CreateNoWindow = True
myProcess.StartInfo.Arguments = Argumento
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
myProcess.EnableRaisingEvents = True
 
myProcess.Start()

Que intentaría ser lo mismo que uso para un acceso directo en windows:
1
C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe -nogui -loadbin "I:\Tekken.iso"

Alguien puede decirme que estoy haciendo mal con esto?

Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con comando cmd.

Publicado por Diego (151 intervenciones) el 12/08/2017 17:49:06
Hola Evan.... Muestra alguna advertencia? Proba sin pasarle los parámetros, solo ejecutar el emulador, asi directamente, sin tantas declaraciones.

1
myProcess.Start("C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe")

Luego, solo agregale los parámetros de tu aplicacion, en algún agregado debe fallar

1
myProcess.Start("C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe", "-nogui -loadbin")

Especificamente que es lo que realizan esos 2 parámetros? Sin pasar el de -nogui, funciona?
Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Evan Hailey

Ayuda con comando cmd.

Publicado por Evan Hailey (44 intervenciones) el 12/08/2017 22:50:12
Gracias por responder, mira sin paramatros queda la ruta del emulador junto a la ruta del iso y eso hace que no funciona.

los parámetros esos son para evitar la gui y cargar el juego de forma directa.

Esto solo lanza el emulador con su interfaz gráfica, sin cargar ningún juego.
1
myProcess.Start("C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe", "-nogui -loadbin")

Seria lo mismo que esto, sin parametros:
1
myProcess.Start("C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe")

Advertencia mi código no da ninguna, corre bien el programa.. en el emulador sale mensaje como que no encuentra la ruta del iso.
no se si existe alguna manera diferente de escribir comandos de cmd, es mas he usado chr(34) para las comillas ya que el cmd las requiere para la ruta de la iso...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con comando cmd.

Publicado por Diego (151 intervenciones) el 13/08/2017 04:48:23
¿Probaste pasarle la ruta del ISO sin utilizar las comillas? Luego, haces todo el tema de la concatenación, pero... ¿pasarselo asi?

1
myProcess.Start("C:\Users\miusuario\Desktop\ePSXe\ePSXe.exe", "-nogui -loadbin I:\Tekken.iso")

Me da a pensar que el parámetro con ", lo toma literal es decir... las comillas son parte del parámetro, de más está decir que sea correcto ese path.

Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Evan Hailey

Ayuda con comando cmd.

Publicado por Evan Hailey (44 intervenciones) el 13/08/2017 16:56:56
Bueno amigo, ya he encontrado el problema..

El asunto era que nos estábamos enfocando en el path de el emulador y la iso, pero para que funcione me di cuenta que cuando se hace click en propiedades de un acceso directo de windows aparece algo que se llama "Destino" donde esta el path del acceso directo y otra que se llama "Iniciar en:", este es ultimo era el gran problema,porque especifica en que parte del disco se debe trabajar.

Así que la solución fue usar eso mismo..

1
MyProcess.StartInfo.WorkingDirectory = ("Esto es el equivalente a [Iniciar en:]...")

Y otra cosilla es que el cmd odia los espacios en blanco...

Mal escrito:
1
I:\#05 EMULACION\03 Isos\01 PSX\Tekken\Tekken.bin

Bien escrito:
1
I:\#05_EMULACION\03_Isos\01_PSX\Tekken\Tekken.bin

Bueno espero, muchas gracias diego y saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad