在Windows Mobile中启动可执行文件的方法

在开发Windows Mobile应用时,可能会遇到需要从应用程序内部启动另一个可执行文件的情况。这可能是为了同步数据、执行特定的任务或其他多种原因。尽管启动外部程序的方法有很多,但个人偏好使用CreateProcess函数,因为它允许选择立即返回或者等待程序执行完成。本文旨在解释如何使用CreateProcess函数来启动一个可执行文件。如果知道更好的方法或者有改进代码的建议,欢迎交流。

开发环境要求

要开始开发应用程序,需要以下工具:

代码使用说明

应用程序本身相当简单。首先,需要在应用程序中添加以下命名空间的引用:

C# using System.Runtime.InteropServices;

完成这一步之后,还需要以下声明以便执行程序:

public class ProcessInfo { public IntPtr hProcess; public IntPtr hThread; public IntPtr ProcessID; public IntPtr ThreadID; }

此外,需要以下函数来简化启动可执行文件的过程。注意使用WaitForSingleObject函数的那一行。如果不想等待应用程序完成,可以将这一行注释掉。

private void LaunchApp(string strPath, string strParms) { ProcessInfo pi = new ProcessInfo(); byte[] si = new byte[128]; CreateProcess(strPath, strParms, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi); // 如果不想等待进程退出,可以将以下行注释掉 WaitForSingleObject(pi.hProcess, 0xFFFFFFFF); int exitCode = 0; GetExitCodeProcess(pi.hProcess, ref exitCode); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }

现在启动应用程序变得非常简单。以下代码行将使用适当的参数启动可执行文件

C# LaunchApp(textEXE.Text, textParms.Text);
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485