要从Silverlight应用程序执行外部应用程序,您需要:
要执行此类应用程序,您可以执行类似这样的操作
public static void EjecutaEXE(string ruta)
{
using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
{
shell.Run(@ruta);
}
}
我发现我只能从Windows目录运行这样的应用程序,我错过了什么吗?似乎毫无意义的这种限制。
这个工作:
EjecutaEXE("C:/Windows/myAwesomeApp.exe")
这不起作用:
EjecutaEXE("C:/myfolder/myAwesomeApp.exe")
没有错误或例外,它什么都不做。
答案 0 :(得分:1)
我对您提供的代码没有经验,但作为替代方案,这应该有效:
public enum ShowCommands : int
{
SW_HIDE = 0,
SW_SHOWNORMAL = 1,
SW_NORMAL = 1,
SW_SHOWMINIMIZED = 2,
SW_SHOWMAXIMIZED = 3,
SW_MAXIMIZE = 3,
SW_SHOWNOACTIVATE = 4,
SW_SHOW = 5,
SW_MINIMIZE = 6,
SW_SHOWMINNOACTIVE = 7,
SW_SHOWNA = 8,
SW_RESTORE = 9,
SW_SHOWDEFAULT = 10,
SW_FORCEMINIMIZE = 11,
SW_MAX = 11
}
[DllImport("shell32.dll")]
static extern IntPtr ShellExecute(
IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
ShowCommands nShowCmd);
public static void ExecuteMyCode(string filePath)
{
IntPtr retval = ShellExecute(System.IntPtr.Zero, string.Empty, filePath, string.Empty, string.Empty, ShowCommands.SW_NORMAL);
}