如何通过编程的方式卸载Windows Mobile程序

原文见:http://blogs.msdn.com/windowsmobile/archive/2008/12/08/uninstalling-applications-programmatically-in-windows-mobile.aspx

 

我觉得这个主题对我很有帮助。

 

  以编程得方式卸载Windows Mobile程序一个比较简单得方法就是利用CSP( Uninstall Configuration Service Provider )。利用CSP可以达到在后台静悄悄的卸载

程序但目的对于处理软件自动升级比较有帮助。也可以应用在某些设备安全程序中,可以在用户没有任何察觉的基础上在后台卸载一些程序。

 

  具体实现的原理是向设备推送一个xml配置文件给CSP,让它执行卸载操作。我们可以使用DMProcessConfigXML函数来实现。

  DMProcessConfigXML(LPCWSTR pszWXMLin, DWORD dwFlags, LPWSTR* ppszwXMLout)

  这是基于本地代码的调用,这个函数的详细介绍见MSDN。这里只说一下如何把它封装成托管代码调用。

  public static XmlDocument ProcessConfiguration ( XmlDocument configDoc, bool metadata)

  下面是一个xml配置文件的例子:

  <wap-provisioningdoc>

      <characteristic type="UnInstall">

        <characteristic type="Your App">

        <parm name="uninstall" value="1" /> 

    </characteristic>

    </characteristic>
  </wap-provisioningdoc>

  把“Your App”改成你需要卸载的程序的名称就可以了。

很简单吧,可是我还没有试过。大家试试看如何。

请注意一点,如果你要卸载的程序有setup.dll,并且在卸载时有自定义的界面。那么无法在使用此方法卸载程序时,这写自定义的界面还是会出现的。

 

 

posted on 2008-12-13 14:43  如影如风  阅读(543)  评论(0编辑  收藏  举报