我是新来的WiX的安装程序。 我需要隐藏或禁用维克斯安装程序的取消按钮进度条运行时。
我用Google搜索,但没有找到一些有用的链接隐藏取消按钮。 我发现这一点: 隐藏取消按钮的安装过程中 ,但仍然不知道如何使用自定义操作。 是否有任何人谁可以给我一些指导,以实现这一目标?
我也做了下面的事情来隐藏取消按钮,但它不工作。 首先,我已用C语言编写的自定义动作++根据上述链接。 让我告诉我的所作所为进行自定义操作。
打开Visual Studio - >新建项目 - >用C自定义操作++选择,选择类型DLL。
这将创建一个CPP文件的新项目。 我叫cpp文件作为自定义操作和写下面的代码:
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <Shellapi.h>
#include <msi.h>
#include <Msiquery.h>
UINT __stdcall HideCancelButton(MSIHANDLE hInstall)
{
PMSIHANDLE hRecord = MsiCreateRecord(2);
if (!hRecord)
return ERROR_INSTALL_FAILURE;
if (ERROR_SUCCESS != MsiRecordSetInteger(hRecord, 1, 2)
|| ERROR_SUCCESS != MsiRecordSetInteger(hRecord, 2, 0))
return ERROR_INSTALL_FAILURE;
MsiProcessMessage(hInstall, INSTALLMESSAGE_COMMONDATA, hRecord);
return ERROR_SUCCESS;
}
// DllMain - Initialize and cleanup WiX custom action utils.
extern "C" BOOL WINAPI DllMain(
__in HINSTANCE hInst,
__in ULONG ulReason,
__in LPVOID
)
{
switch(ulReason)
{
case DLL_PROCESS_ATTACH:
WcaGlobalInitialize(hInst);
break;
case DLL_PROCESS_DETACH:
WcaGlobalFinalize();
break;
}
return TRUE;
}
这是DEF文件的代码:
LIBRARY "HideCancelButton"
EXPORTS
HideCancelButton
现在我建项目和它的创建HideCancelButton.dll文件。
现在来我的WiX工程。 添加自定义操作:
<Binary Id="HideCancelButtonDll" SourceFile="C:\Users\umer\Desktop\HideCancelButton.dll"/>
<CustomAction Id="CAhidecancel" BinaryKey="HideCancelButtonDll" Execute="immediate" Impersonate="no" DllEntry="HideCancelButton" Return="check"/>
添加下面一行在安装执行顺序
<Custom Action='CAhidecancel' Before='CreateSSISCatalog'></Custom>
这就是我所做的,但它不工作。 我查了日志,它表明,返回值是1,但还是取消按钮的显示位置。 要检查功能是否调用与否,我把睡眠(10000)和显示状态的安装程序,它工作正常,但取消按钮的显示位置。