설치 중 취소 단추 숨기기
명령줄 옵션, Windows Installer API 또는 사용자 지정 작업을 사용하여 설치를 취소하는 데 사용되는 취소 단추를 숨길 수 있습니다. 사용 중인 방법에 따라 설치의 일부 또는 전부에 대해 취소 단추를 숨길 수 있습니다.
명령줄에서 취소 단추 숨기기
(!) 명령줄 옵션을 사용하여 설치하는 동안 취소 단추를 숨길 수 있습니다. 이 작업은 기본 사용자 인터페이스 수준 설치(/qb)에 대해서만 수행할 수 있습니다. 전체 설치 시 취소 단추가 숨겨집니다. 자세한 내용은 명령줄 옵션 및 사용자 인터페이스 수준을 참조하세요. 다음 명령줄은 취소 단추를 숨기고 Example.msi를 설치합니다.
msiexec /I example.msi /qb!
애플리케이션 또는 스크립트에서 취소 단추 숨기기
취소 단추를 숨기는 애플리케이션 또는 스크립트를 작성할 수 있습니다. 이 작업은 전체 설치 시 취소 단추가 숨겨지도록 기본 UI 수준 설치에 대해서만 수행할 수 있습니다.
애플리케이션에서 취소 단추를 숨기려면 MsiSetInternalUI를 호출할 때 INSTALLUILEVEL_HIDECANCEL을 설정합니다. 다음 예제에서는 취소 단추를 숨기고 Example.msi를 설치합니다.
#include <windows.h>
#include <stdio.h>
#include <Shellapi.h>
#include <msi.h>
#include <Msiquery.h>
#include <tchar.h>
#pragma comment(lib, "msi.lib")
int main()
{
INSTALLUILEVEL uiPrevLevel = MsiSetInternalUI( INSTALLUILEVEL(INSTALLUILEVEL_BASIC | INSTALLUILEVEL_HIDECANCEL), 0);
UINT uiStat = MsiInstallProduct(_T("example.msi"), NULL);
return 0;
}
스크립트에서 취소 단추를 숨기려면 Installer 개체의 UILevel 속성에 msiUILevelHideCancel을 추가합니다. 다음 VBScript 샘플은 취소 단추를 숨기고 Example.msi를 설치합니다.
Dim Installer As Object
Set Installer = CreateObject("WindowsInstaller.Installer")
Installer.UILevel = msiUILevelBasic + msiUILevelHideCancel
Installer.InstallProduct "example.msi"
부분 설치 시 사용자 지정 작업을 사용하여 취소 단추 숨기기
설치 시 DLL 사용자 지정 작업 또는 스크립트를 사용하여 INSTALLMESSAGE_COMMONDATA 메시지를 보내 부분 설치 중에 취소 단추를 숨기거나 숨기기 취소할 수 있습니다. 자세한 내용은 동적 연결 라이브러리, 스크립트, 사용자 지정 작업, MsiProcessMessage를 사용하여 Windows Installer에 메시지 보내기를 참조하세요.
사용자 지정 작업 호출은 레코드를 제공해야 합니다. 취소 단추를 지정하려면 이 레코드의 필드 1에 값 2가 포함되어야 합니다. 필드 2에는 값 0 또는 1이 포함되어야 합니다. 필드 2의 값이 0이면 단추가 숨겨지고 필드 2의 값 1이면 단추의 숨기기를 취소합니다. MsiCreateRecord를 사용하여 크기 2의 레코드를 할당하면 필드 0, 1, 2가 제공됩니다.
다음 샘플 DLL 사용자 지정 작업은 취소 단추를 숨깁니다.
#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;
}
다음 VBScript 사용자 지정 작업은 취소 단추를 숨깁니다.
Function HideCancelButton()
Dim Record
Set Record = Installer.CreateRecord(2)
Record.IntegerData(1) = 2
Record.IntegerData(2) = 0
Session.Message msiMessageTypeCommonData, Record
' return success
HideCancelButton = 1
Exit Function
End Function