mirror of
https://github.com/vxunderground/VX-API
synced 2026-06-06 16:54:55 +00:00
Version: 2.0.684
Version: 2.0.684
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
#include "Win32Helper.h"
|
||||
|
||||
/*
|
||||
|
||||
Example .inf file
|
||||
_______________
|
||||
///////////////
|
||||
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
[version]
|
||||
signature = $Chicago$
|
||||
AdvancedInf = 2.5
|
||||
|
||||
[DefaultInstall_SingleUser]
|
||||
RunPostSetupCommands = Tag1
|
||||
|
||||
[Tag1]
|
||||
C:\Windows\system32\calc.exe
|
||||
_______________
|
||||
///////////////
|
||||
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
*/
|
||||
|
||||
BOOL CreateProcessFromINFSectionInstallStringNoCab2W(LPCWSTR PathToInfFile, LPCWSTR NameOfSection)
|
||||
{
|
||||
typedef HRESULT(WINAPI* LAUNCHINFSECTIONW)(HWND, HINSTANCE, PWSTR, INT);
|
||||
LAUNCHINFSECTIONW LaunchINFSectionW = NULL;
|
||||
HMODULE hMod = NULL;
|
||||
BOOL bFlag = FALSE;
|
||||
WCHAR InfExecutionBuffer[MAX_PATH * 2] = { 0 };
|
||||
|
||||
hMod = LoadLibraryW(L"ieadvpack.dll");
|
||||
if (hMod == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
LaunchINFSectionW = (LAUNCHINFSECTIONW)GetProcAddressA((DWORD64)hMod, "LaunchINFSectionW");
|
||||
if (!LaunchINFSectionW)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringCopyW(InfExecutionBuffer, PathToInfFile) == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatW(InfExecutionBuffer, L",") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatW(InfExecutionBuffer, NameOfSection) == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatW(InfExecutionBuffer, L",") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatW(InfExecutionBuffer, L"1") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatW(InfExecutionBuffer, L",") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (!SUCCEEDED(LaunchINFSectionW(NULL, NULL, InfExecutionBuffer, 0)))
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
bFlag = TRUE;
|
||||
|
||||
EXIT_ROUTINE:
|
||||
|
||||
if (hMod)
|
||||
FreeLibrary(hMod);
|
||||
|
||||
return bFlag;
|
||||
}
|
||||
|
||||
BOOL CreateProcessFromINFSectionInstallStringNoCab2A(LPCSTR PathToInfFile, LPCSTR NameOfSection)
|
||||
{
|
||||
typedef HRESULT(WINAPI* LAUNCHINFSECTION)(HWND, HINSTANCE, PSTR, INT);
|
||||
LAUNCHINFSECTION LaunchINFSection = NULL;
|
||||
HMODULE hMod = NULL;
|
||||
BOOL bFlag = FALSE;
|
||||
CHAR InfExecutionBuffer[MAX_PATH * 2] = { 0 };
|
||||
|
||||
hMod = LoadLibraryW(L"ieadvpack.dll");
|
||||
if (hMod == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
LaunchINFSection = (LAUNCHINFSECTION)GetProcAddressA((DWORD64)hMod, "LaunchINFSection");
|
||||
if (!LaunchINFSection)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringCopyA(InfExecutionBuffer, PathToInfFile) == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatA(InfExecutionBuffer, ",") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatA(InfExecutionBuffer, NameOfSection) == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatA(InfExecutionBuffer, ",") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatA(InfExecutionBuffer, "1") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (StringConcatA(InfExecutionBuffer, ",") == NULL)
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
if (!SUCCEEDED(LaunchINFSection(NULL, NULL, InfExecutionBuffer, 0)))
|
||||
goto EXIT_ROUTINE;
|
||||
|
||||
bFlag = TRUE;
|
||||
|
||||
EXIT_ROUTINE:
|
||||
|
||||
if (hMod)
|
||||
FreeLibrary(hMod);
|
||||
|
||||
return bFlag;
|
||||
}
|
||||
Reference in New Issue
Block a user