我有一个 c# 应用程序,我在 Windows Mobile 6.1 设备上的 cleanboot 期间安装。它安装正确,但是,我需要让它在干净启动后自动启动。
我总是必须在干净启动后对手持设备进行热启动才能启动。
我怎样才能避免这种情况?
我有一个 c# 应用程序,我在 Windows Mobile 6.1 设备上的 cleanboot 期间安装。它安装正确,但是,我需要让它在干净启动后自动启动。
我总是必须在干净启动后对手持设备进行热启动才能启动。
我怎样才能避免这种情况?
我假设,您正在使用 CAB 文件在 cleanboot 期间安装您的 C# 应用程序。
在使用 DLL 的 Install_Exit 函数调用安装 cab 文件后,您可以在 cab 中使用 setup.dll 来启动您的应用程序(setupdll 示例,例如:http: //www.codeproject.com/Articles/7724/Creating- Pocket-PC-Application-Setup-Packages-Usin)。但是 MS 声明您不能依赖 cab 安装本身的调用文件。
另一种方法是在您的 C# 应用程序安装后安装第二个 cab,并且只调用您的应用程序,即使使用设置 dll。
另请参阅http://msdn.microsoft.com/en-us/library/bb158796.aspx,了解如何将多个 cab 打包到一个安装中。
cleanboot 安装程序和 AutoStart 的问题是,操作系统已经运行了 \Windows\StartUp 并且在安装 cab 时还运行了其他自动启动。因此,您通常需要重新启动,然后使用 StartUp(或 HKLM\Init)执行您的应用程序。
您还可以使用脚本引擎来安装 cab,然后启动已安装的应用程序。例如使用 MortScript,它支持在 SD Card\2577 或类似目录(卷名\2577)中用作“AutoStart.exe”。该脚本可以调用 wceload.exe 来安装您的应用程序,然后启动已安装应用程序的可执行文件。就像使用批处理一样。
由于这是一个 Intermec 安装,您可以使用 \Flash File Store\UserAutoInstall_sstransferagent.xml 来自动安装和启动应用程序。
例如:您的 cab 位于 \Flash File Store\MyInstall\MyCab.cab 并将 MyApp.exe 安装到 \Program Files\MyApp:
<?xml version="1.0"?>
<Devices>
<Device Type="" Family="" Model="" Boot="">
<Files SrcDir="\Flash File Store\UserAutoInstall">
<File SrcName=""
DestName="wceload.exe"
DestDir="\Windows"
Run="true"
CmdLine='"\Flash File Store\MyInstall\MyCab.cab" /silent /verifyconfig /nodelete'
/>
<File SrcName=""
DestName="MyApp.exe"
DestDir="\Program Files\MyApp\MyApp.exe"
Run="NoWait"
CmdLine=''
/>
</Files>
</Device>
</Devices>
问候