Added PESubsysVer attribute
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6592 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
c679845ad6
commit
20866470fa
6 changed files with 22 additions and 1 deletions
|
@ -26,6 +26,8 @@ Released on ?, 201?
|
|||
|
||||
\b nsDialogs and InstallOptions now use the system link color
|
||||
|
||||
\b Added PESubsysVer attribute
|
||||
|
||||
\H{v3.0b1} 3.0 Beta 1
|
||||
|
||||
Released on October 6th, 2014
|
||||
|
|
|
@ -278,6 +278,7 @@ CEXEBuild::CEXEBuild(signed char pponly) :
|
|||
res_editor=0;
|
||||
|
||||
PEDllCharacteristics = IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE|IMAGE_DLLCHARACTERISTICS_NO_SEH|IMAGE_DLLCHARACTERISTICS_NX_COMPAT|IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE; //forums.winamp.com/showthread.php?t=344755
|
||||
PESubsysVerMaj = PESubsysVerMin = (WORD) -1;
|
||||
manifest_comctl = manifest::comctl_old;
|
||||
manifest_exec_level = manifest::exec_level_none;
|
||||
manifest_dpiaware = manifest::dpiaware_notset;
|
||||
|
@ -2404,6 +2405,12 @@ int CEXEBuild::UpdatePEHeader()
|
|||
// workaround for bug #2697027, #2725883, #2803097
|
||||
headers->OptionalHeader.MajorImageVersion = FIX_ENDIAN_INT16(6);
|
||||
headers->OptionalHeader.MinorImageVersion = FIX_ENDIAN_INT16(0);
|
||||
// Override SubsystemVersion?
|
||||
if (PESubsysVerMaj != (WORD) -1)
|
||||
{
|
||||
headers->OptionalHeader.MajorSubsystemVersion = FIX_ENDIAN_INT16(PESubsysVerMaj);
|
||||
headers->OptionalHeader.MinorSubsystemVersion = FIX_ENDIAN_INT16(PESubsysVerMin);
|
||||
}
|
||||
// DllCharacteristics
|
||||
headers->OptionalHeader.DllCharacteristics = FIX_ENDIAN_INT16(PEDllCharacteristics);
|
||||
} catch (std::runtime_error& err) {
|
||||
|
|
|
@ -531,7 +531,7 @@ class CEXEBuild {
|
|||
int deflateToFile(FILE *fp, char *buf, int len); // len==0 to flush
|
||||
#endif
|
||||
|
||||
WORD PEDllCharacteristics;
|
||||
WORD PEDllCharacteristics, PESubsysVerMaj, PESubsysVerMin;
|
||||
manifest::comctl manifest_comctl;
|
||||
manifest::exec_level manifest_exec_level;
|
||||
manifest::dpiaware manifest_dpiaware;
|
||||
|
|
|
@ -2829,6 +2829,16 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
SCRIPT_MSG(_T("PEDllCharacteristics: 0x%.4x -> 0x%.4x\n"), org, PEDllCharacteristics);
|
||||
}
|
||||
return PS_OK;
|
||||
|
||||
case TOK_PESUBSYSVER:
|
||||
{
|
||||
unsigned int mj, mi;
|
||||
if (2 == _stscanf(line.gettoken_str(1), _T("%u.%u"), &mj, &mi))
|
||||
if (mj <= 0xffff && mi <= 0xffff)
|
||||
return (PESubsysVerMaj = (WORD) mj, PESubsysVerMin = (WORD) mi, PS_OK);
|
||||
}
|
||||
PRINTHELP();
|
||||
return PS_ERROR;
|
||||
|
||||
case TOK_REQEXECLEVEL:
|
||||
switch (line.gettoken_enum(1,_T("none\0user\0highest\0admin\0")))
|
||||
|
|
|
@ -239,6 +239,7 @@ static tokenType tokenlist[TOK__LAST] =
|
|||
{TOK_WRITEREGEXPANDSTR,_T("WriteRegExpandStr"),4,0,_T("rootkey subkey entry_name new_value_string\n root_key=(HKCR|HKLM|HKCU|HKU|HKCC|HKDD|HKPD|SHCTX)"),TP_CODE},
|
||||
{TOK_WRITEUNINSTALLER,_T("WriteUninstaller"),1,0,_T("uninstall_exe_name"),TP_CODE},
|
||||
{TOK_PEDLLCHARACTERISTICS, _T("PEDllCharacteristics"),2,0,_T("addbits removebits"),TP_GLOBAL},
|
||||
{TOK_PESUBSYSVER, _T("PESubsysVer"),1,0,_T("major.minor"),TP_GLOBAL},
|
||||
{TOK_XPSTYLE, _T("XPStyle"),1,0,_T("(on|off)"),TP_GLOBAL},
|
||||
{TOK_REQEXECLEVEL, _T("RequestExecutionLevel"),1,0,_T("none|user|highest|admin"),TP_GLOBAL},
|
||||
{TOK_MANIFEST_DPIAWARE,_T("ManifestDPIAware"),1,0,_T("notset|true|false"),TP_GLOBAL},
|
||||
|
|
|
@ -60,6 +60,7 @@ enum
|
|||
TOK_FILEERRORTEXT,
|
||||
TOK_INSTPROGRESSFLAGS,
|
||||
TOK_PEDLLCHARACTERISTICS,
|
||||
TOK_PESUBSYSVER,
|
||||
TOK_XPSTYLE,
|
||||
TOK_REQEXECLEVEL,
|
||||
TOK_MANIFEST_DPIAWARE,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue