Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: The_Saint en 3 Mayo 2013, 19:46 pm



Título: Error al ejecutar un EXE con C#
Publicado por: The_Saint en 3 Mayo 2013, 19:46 pm
Buenas a todos:

Estoy haciendo un programa que se nutre de otro ya hecho y me pasa unos pdf a txt antes de tratarlo.

Si lo ejecuto a manilla desde la consola de dos no hay problema ahora si lo hago con codigo me devuelve este error:
http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k(EHCWin32);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv2.0);k(DevLang-csharp)&rd=true (http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k(EHCWin32);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv2.0);k(DevLang-csharp)&rd=true)

Ahora si ejecuto cualquier comando :
Código:
Process.Start(@"notepad.exe");

No tengo ningun problema... no se a que puede deberse y llevo una hora dandole vueltas....

Podeis ayudarme?


Título: Re: Error al ejecutar un EXE con C#
Publicado por: Eleкtro en 3 Mayo 2013, 20:34 pm
Hola.

Has leido lo que pone en el enlace que has puesto del MSDN, verdad?

usa la propiedad para obtener el código de error, y encuentra la cause del error aquí: http://msdn.microsoft.com/en-us/library/cc231199.aspx

Espero que sirva de algo.

Saludos!


Título: Re: Error al ejecutar un EXE con C#
Publicado por: The_Saint en 4 Mayo 2013, 14:30 pm
No encuentro el error segun la lista que me has dado, a mi me devuelve creo:

Errorcode:-2147467259

(http://imageshack.us/a/img856/7904/errorxwr.jpg)
(http://imageshack.us/a/img195/9210/error2kf.jpg)
(http://imageshack.us/a/img195/5395/directorion.jpg)

A ver si alguien puede ayudarme,estoy mas perdido que el barco del arroz jajajaa


Título: Re: Error al ejecutar un EXE con C#
Publicado por: Eleкtro en 4 Mayo 2013, 16:19 pm
@Heisenberg_w0rms
Normal que no encuentre el archivo, estás añadiendo los argumentos al nombre de la ruta, los argumentos de la aplicación van separados, a la derecha, no los juntes.

Código
  1. Process.start(Proceso.exe, Argumentos);
Código
  1. Process.start(@dirconversor + "ebook-convert.exe", "prueba.pdf prueba.txt");

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start%28v=vs.71%29.aspx

Saludos


Título: Re: Error al ejecutar un EXE con C#
Publicado por: kub0x en 4 Mayo 2013, 16:27 pm
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

LOL -> 0x00000002
ERROR_FILE_NOT_FOUND
   

The system cannot find the file specified.
Como bien dice EleKtro, tienes que separar los paramétros de las llamadas al proceso. Su respuesta me imagino que será válida (nunca lo probé de dicha manera), pero aquí te dejo un par de consejos de como lograrlo:

Crea una instancia del cmd mediante la clase Process(), captura su flujo de entrada, escribe en éste la llamada al programa y los parámetros necesarios. De esta manera podrás comunicarte con la aplicación en cuestión.

O bien, crea un proceso que apunte al cmd e inicializa la propiedad FileName y Arguments en el apartado StartInfo (Filename apuntará al ejecutable y Arguments a la lista de argumentos que le quieras pasar a tu programa).

Ambos ejemplos los postee hace un tiempo.

Saludos!


Título: Re: Error al ejecutar un EXE con C#
Publicado por: The_Saint en 5 Mayo 2013, 18:58 pm
kub0x
La verdad es que no se muy bien el método que me estas comentando me puedes poner los link para ojearlos.

EleKtro H@cker
Muchas gracias por la respuesta

Saludos.


Título: Re: Error al ejecutar un EXE con C#
Publicado por: kub0x en 6 Mayo 2013, 02:53 am
En este post expliqué como construir un proceso especificando sus argumentos, path del archivo y propiedades varias que configuran el comportamiento del proceso -> http://foro.elhacker.net/net/msdos_vbnet-t353673.0.html (http://foro.elhacker.net/net/msdos_vbnet-t353673.0.html).

Ten en cuenta que hay más formas de hacerlo y algunas más eficientes (Dependiendo de lo que quieras implementar), por ahí queda lo de interactuar con los flujos de Entrada/Salida (E/S) del programa. Échale un vistazo a la clase Process() en la MSDN ;)

Saludos!