我有两个安装在WM/CE设备中的应用程序。
已安装的应用程序包括
APP1.exe
&
APP2.exe
.
安装期间
应用程序1
&
应用程序2
另一个过程是
doJob.exe
存储在
应用程序1
&
应用程序2
.
大体上
应用程序1
有自己的目录&同样适用于
应用程序2
.
请注意:
-
应用程序1
&
应用程序2
内部启动上述流程
doJob.exe
.
-
二者都
应用程序1
&
应用程序2
正在使用相同的名称在内部运行另一个进程,即。
doJob.exe
.
我所做的:
-
仅启动
应用程序1
其内部启动其相关流程
doJob.exe
.
-
从…起
APP1.exe
,我打电话
DMProcessConfigXML
用于卸载的API
应用程序2
.
-
这样做应该会卸载
应用程序2
包括
doJob.exe
存在于…之下
应用程序2
目录
观察结果:
-
使命感
DMP进程配置XML
,关闭
doJob.exe
与…有关
应用程序1
卸载的内容时
应用程序2
.
预期:
-
它不应关闭
doJob.exe
与关联的进程
应用程序1
.
代码如下所示:-
void UninstallApp(){
wstring strRequest =
L"<wap-provisioningdoc><characteristic type=\"UnInstall\">"
L"<characteristic type=\"\\Program Files\\APP2";
strRequest += L"\">"
L"<parm name=\"uninstall\" value=\"1\"/>"
L"</characteristic>"
L"</characteristic></wap-provisioningdoc>";
LPFN_DMPROCESS_CONFIGXML_T lpfn_dmprocess_configxml = NULL;
HRESULT hr = E_FAIL;
LPWSTR wszOutput = NULL;
HMODULE hLib = LoadLibrary(TEXT("aygshell.dll"));
if (hLib)
{
lpfn_dmprocess_configxml = (LPFN_DMPROCESS_CONFIGXML_T)GetProcAddress(hLib, L"DMProcessConfigXML");
if (lpfn_dmprocess_configxml != NULL)
{
hr = lpfn_dmprocess_configxml(strRequest.c_str(), CFGFLAG_PROCESS, &wszOutput);
}
}
if (hLib)
FreeLibrary (hLib);
if (FAILED(hr) || !wszOutput )
MessageBox(NULL,L"Failed",L"Failed",MB_OK);
if ( wszOutput )
free( wszOutput );
}
没有得到任何线索。
请告诉我,我是否需要更改上面代码中的XML属性,或者这是使用DMProcessConfigXML API的缺点。