2011-05-26 3 views
7

¿Hay alguna manera de ejecutar una aplicación mediante acceso directo desde una aplicación C#?Ejecutar la aplicación a través de acceso directo usando Process.Start C#

Estoy intentando ejecutar un .lnk de mi C# aplicación. El atajo contiene una cantidad significativa de argumentos que preferiría que la aplicación no tuviera que recordar.

Intentar ejecutar un acceso directo a través de Process.Start provoca una excepción.

Gracias

EDIT:

La excepción es un "Win32Exception": "El ejecutable especificado no es una aplicación Win32 válida"

Aquí es el (abreviado) Código:

ProcessStartInfo info = new ProcessStartInfo ("example.lnk"); 
info.CreateNoWindow = true; 
info.UseShellExecute = false; 
info.RedirectStandardError = true; 
info.RedirectStandardOutput = true; 
info.RedirectStandardInput = true; 
Process whatever = Process.Start(info); 
+0

¿El acceso directo requiere argumentos o es el destino del acceso directo que requiere argumentos? – Jodrell

+0

¿cuál es la excepción? – Jodrell

+0

@Jodrell actualizado con la información solicitada. El objetivo del atajo requiere argumentos. – user664939

Respuesta

4

Configuración UseShellExecute = false era el problema. Una vez que eliminé eso, dejó de estrellarse.

10

Podría publicar algo de código. Algo como esto debería funcionar:

Process proc = new Process(); 
proc.StartInfo.FileName = @"c:\myShortcut.lnk"; 
proc.Start(); 
+1

+1: lo probé aquí, funciona bien. –

0

si su archivo es EXE u otro tipo de archivo como ".exe" o ".mkv" o ".pdf" y desea ejecutarlo con un enlace de atajo su código debe tener esto.

i quieren ejecutar el programa "Translator.exe".

Process.Start(@"C:\Users\alireza\Desktop\Translator.exe.lnk"); 
0

Si está utilizando UseShellExecute = false y tratando de poner en marcha un archivo por lotes asegúrese de añadir .bat al final del nombre de archivo. Sin embargo, no necesita .bat si UseShellExecute = true. Esto me hizo perder una hora de trabajo ... esperando salvar a alguien más.

+0

Bienvenido a StackOverflow y gracias por ayudarnos. Al tomar la [gira] obtendrá su primera insignia. Que te diviertas. – Yunnosch

Cuestiones relacionadas