我有一个c#应用程序,我在windows移动6.1设备的清洁启动期间安装。它安装正确,但是,我需要让它在干净启动后自动启动。
我总是要在清洁启动之后再热启动它才能启动。
我怎样才能避免这种情况?
我猜,你正在使用CAB文件在cleanboot期间安装c#应用程序。
你可以在cab中使用setup.dll来启动你的应用程序,在cab文件安装后,使用DLL的Install_Exit函数调用(例如这里的setupdll示例:http://www.codeproject.com/Articles/7724/Creating-Pocket-PC-Application-Setup-Packages-Usin)。但是MS声明你不能依赖于cab安装本身的调用文件。
另一种方法是在c#应用程序安装后安装第二个cab,它只调用你的应用程序,甚至使用setup dll。
参见http://msdn.microsoft.com/en-us/library/bb158796.aspx了解如何将多个cab打包到一个安装中。
清洁启动安装程序和AutoStart的问题是,当安装cab时,操作系统已经运行WindowsStartUp和其他自动启动程序。因此,您通常需要重新启动,然后使用StartUp(或HKLMInit)执行您的应用程序。
您也可以使用脚本引擎来安装cab,然后启动已安装的应用程序。例如使用MortScript,它支持在SD卡2577或类似的目录(卷名2577)中用作"AutoStart.exe"。脚本可以调用wcelload .exe来安装应用程序,然后启动已安装应用程序的可执行文件。类似于使用批处理。
由于这是一个Intermec安装,您可以使用Flash File Store userautoinstall_sstrtransferagent .xml来自动安装和启动应用程序。
例如:你的出租车在Flash File StoreMyInstallMyCab。安装MyApp.exe到Program FilesMyApp:
<?xml version="1.0"?>
<Devices>
<Device Type="" Family="" Model="" Boot="">
<Files SrcDir="Flash File StoreUserAutoInstall">
<File SrcName=""
DestName="wceload.exe"
DestDir="Windows"
Run="true"
CmdLine='"Flash File StoreMyInstallMyCab.cab" /silent /verifyconfig /nodelete'
/>
<File SrcName=""
DestName="MyApp.exe"
DestDir="Program FilesMyAppMyApp.exe"
Run="NoWait"
CmdLine=''
/>
</Files>
</Device>
</Devices>
对