Windows mobile 判断应用程序是否安装,获取已经安装的应用程序列表

//判断具体的应用程序是否已经安装,有些内置的程序不能判断。

//内置的程序一般可以通过查看程序菜单的快捷方式来判断是否安装。

BOOL IsAppInstalled( )
{
    BOOL bRet = FALSE;
    //查询可被卸载的软件信息
    LPCTSTR szInput =
        L"<wap-provisioningdoc>"
        L"<characteristic type=/"UnInstall/">"
        L"<characteristic-query type=/"Sogou SogouSip/"/>"
        L"</characteristic>"
        L"</wap-provisioningdoc>";

    //DMProcessConfigXML函数可以访问移动设备的配置管理功能实体,借由XML信息来配置移动设备
    LPTSTR szOutput = NULL;
    HRESULT hr = DMProcessConfigXML(szInput, CFGFLAG_PROCESS, &szOutput);
    if (S_OK == hr)
    {
        if( NULL != wcsstr(szOutput, L"parm name=/"uninstall/"") )
        {
            bRet = TRUE;
        }       
    }   
    if (NULL != szOutput)
    {
        delete [] szOutput;
        szOutput = NULL;
    }

    return bRet;
}

 

//获取已经安装的应用程序列表

BOOL GetAPPList()
{

     BOOL bRet = FALSE;
    //查询可被卸载的软件信息
    LPTSTR szInput = 
        L"<wap-provisioningdoc>"
        L"<characteristic-query type=/"UnInstall/"/>"
        L"</wap-provisioningdoc>";
   
    /*
    查询结果的格式为:
    <wap-provisioningdoc>
    <characteristic type="UnInstall">
    <characteristic type="Microsoft Application#2">
    <parm name="uninstall" value="0"/>
    </characteristic>   
    </characteristic>
    </wap-provisioningdoc>
    */

    //DMProcessConfigXML函数可以访问移动设备的配置管理功能实体,借由XML信息来配置移动设备
    LPTSTR szOutput = NULL;
    HRESULT hr = DMProcessConfigXML(szInput, CFGFLAG_PROCESS, &szOutput);
    if (S_OK == hr)
    {
          //对查询结果进行xml解析,首先获取软件列表的软件名称个数

          ......

          ......

 

          bRet = TRUE;

     }

 

     if (NULL != szOutput)
      {
           delete [] szOutput;
           szOutput = NULL;
     }  
    return bRet;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值