如何使用ShellExecuteEx在Windows ce上运行应用程序?

问题描述:

我使用这个代码:如何使用ShellExecuteEx在Windows ce上运行应用程序?

SHELLEXECUTEINFO ShExecInfo = {0}; 
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; 
ShExecInfo.hwnd = NULL; 
ShExecInfo.lpVerb = NULL; 
ShExecInfo.lpFile = _T("\\test\\WindowsCE\\test.exe");  
ShExecInfo.lpParameters = _T(""); 
ShExecInfo.lpDirectory = NULL; 
ShExecInfo.nShow = SW_SHOW; 
ShExecInfo.hInstApp = NULL; 
ShellExecuteEx(&ShExecInfo); 
WaitForSingleObject(ShExecInfo.hProcess,INFINITE); 

我在指定目录下的程序test.exe的,但它给我一个错误:无法找到“测试”(或它的组元一个)。确保路径和文件名.... 在一个Windows CE设备与SD CArd,什么可能的路径?

+0

你真的可以在设备上看到\\测试\\ WindowsCE \\ test.exe吗?你可以导航到它并运行它?这听起来像你的道路是错误的。 – 2010-10-27 13:14:54

通常情况下SD卡的路径是\\Storage Card - 您必须使用完整路径。您可以通过ActiveSync或设备本身导航到文件,并查看您曾经到过的路径。

您指定的路径意味着在根目录“文件夹”(My Device)下有一个名为test的文件夹,并且在该文件夹下有一个名为WindowsCE的文件夹,并且您有该文件。

+2

还有其他的方法。例如,如果执行程序本身也位于SD卡上,则可以获取模块路径。 ('GetModuleFileName(NULL,buf,MAX_PATH)'返回一个完整路径。) – MSalters 2010-10-25 09:32:16

+0

是的,但我的答案仍然存在,不值得一票。 – Shaihi 2010-11-09 22:33:48