mirror of https://github.com/ventoy/Ventoy.git
1. Add support for some special WinPE
2. Add VentoyAutoRun.bat feature
This commit is contained in:
parent
1473be0e4c
commit
0fa25c4526
Binary file not shown.
Binary file not shown.
|
@ -1987,5 +1987,56 @@
|
|||
"STR_VTSI_CREATE_SUCCESS":"VTSI ֆայլը հաջողությամբ ստեղծվեց!#@Դուք կարող եք օգտագործել Rufus (3.15+) կրիչում ձայնագրելու համար, որպեսզի ավարտեք Ventoy-ի տեղադրումը:",
|
||||
"STR_VTSI_CREATE_FAILED":"VTSI ֆայլի ստեղծումը ձախողվեց։",
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
"name":"Finnish (suomi)",
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"heidi.wenger",
|
||||
|
||||
"STR_ERROR":"Virhe",
|
||||
"STR_WARNING":"Varoitus",
|
||||
"STR_INFO":"Tiedot",
|
||||
"STR_INCORRECT_DIR":"Ole hyvä ja aja oikean kansion alla!",
|
||||
"STR_INCORRECT_TREE_DIR":"Älä aja minua tässä, ole hyvä ja lataa julkaistu asennuspaketti, ja suorita ajo siellä.",
|
||||
"STR_DEVICE":"Laite",
|
||||
"STR_LOCAL_VER":"Ventoy paketissa",
|
||||
"STR_DISK_VER":"Ventoy laitteessa",
|
||||
"STR_STATUS":"Tila - VALMIS",
|
||||
"STR_INSTALL":"Asenna",
|
||||
"STR_UPDATE":"Päivitä",
|
||||
"STR_UPDATE_TIP":"Päivytystoiminto on turvallinen, ISO -tiedostot pysyvät muuttumattomana.#@Jatketaanko?",
|
||||
"STR_INSTALL_TIP":"Laite tullaan alustamaan ja tämän johdosta kaikki tieto sen sisällä menetetään.#@Jatketaanko?",
|
||||
"STR_INSTALL_TIP2":"Laite tullaan alustamaan ja tämän johdosta kaikki tieto sen sisällä menetetään.#@Jatketaanko? (Kaksoistarkistus)",
|
||||
"STR_INSTALL_SUCCESS":"Onnittelut!#@Ventoy on asennettu laitteeseen onnistuneesti.",
|
||||
"STR_INSTALL_FAILED":"Asennuksen yhteydessä ilmeni virhe. Voit nypätä USB-laitteen irti ja koettaa uudelleen. Katso log.txt nähdäksesi yksityiskohdat. Mikäli toimi epäonnistuu aina, lue usein kysytyt kysymykset (FAQ) virallisella sivustolla.",
|
||||
"STR_UPDATE_SUCCESS":"Onnittelut!#@Ventoy päivitettiin laitteeseen onnistuneesti.",
|
||||
"STR_UPDATE_FAILED":"Päivityksen aikana ilmeni virhe. Voit nypätä USB-laitteen irti ja koettaa uudelleen. Katso log.txt nähdäksesi yksityiskohdat. Mikäli toimi epäonnistuu aina, lue usein kysytyt kysymykset (FAQ) virallisella sivustolla.",
|
||||
"STR_WAIT_PROCESS":"Toimi on ajossa juuri nyt, ole hyvä ja odota...",
|
||||
"STR_MENU_OPTION":"Vaihtoehto",
|
||||
"STR_MENU_SECURE_BOOT":"Secure Boot (turvakäynnistys) -tuki",
|
||||
"STR_MENU_PART_CFG":"Osioasetukset",
|
||||
"STR_BTN_OK":"SELVÄ",
|
||||
"STR_BTN_CANCEL":"Peruuta",
|
||||
"STR_PRESERVE_SPACE":"Jätä hiukan vapaata tilaa levyn loppuun",
|
||||
"STR_SPACE_VAL_INVALID":"Epäkelpo määrä tilavaraukselle",
|
||||
"STR_MENU_CLEAR":"Poista Ventoy",
|
||||
"STR_CLEAR_SUCCESS":"Ventoy on nyt poistettu laitteesta onnistuneesti.",
|
||||
"STR_CLEAR_FAILED":"Ilmeni virhe poistettaessa Ventoyta levyltä. Voit nypätä laitteen irti ja koettaa uudelleen. Katso log.txt nähdäksesi yksityiskohdat.",
|
||||
"STR_MENU_PART_STYLE":"Osiotyyli",
|
||||
"STR_DISK_2TB_MBR_ERROR":"Ole hyvä ja valitse GPT laitteille joissa on tilavuutta yli 2 teratavua",
|
||||
"STR_SHOW_ALL_DEV":"Näytä kaikki laitteet",
|
||||
"STR_PART_ALIGN_4KB":"Järjestä osiot 4Kt mukaisesti",
|
||||
"STR_WEB_COMMUNICATION_ERR":"Kommunikaatiovirhe:",
|
||||
"STR_WEB_REMOTE_ABNORMAL":"Kommunikaatiovirhe: epätavanomainen etävaste",
|
||||
"STR_WEB_REQUEST_TIMEOUT":"Kommunikaatiovirhe: pyynnön aikavaste ylittyi",
|
||||
"STR_WEB_SERVICE_UNAVAILABLE":"Kommunikaatiovirhe: palvelu on tavoittamattomissa",
|
||||
"STR_WEB_TOKEN_MISMATCH":"Taustaohjelman tila päivittyi, ole hyvä ja yritä myöhemmin uudelleen.",
|
||||
"STR_WEB_SERVICE_BUSY":"Palvelu ruuhkautunut, ole hyvä ja yritä myöhemmin uudelleen.",
|
||||
"STR_MENU_VTSI_CREATE":"Luo VTSI -tiedosto",
|
||||
"STR_VTSI_CREATE_TIP":"Tällä kerralla laitteeseen ei kirjoiteta, vaan luodaan ainoastaan VTSI -tiedosto#@Jatketaanko?",
|
||||
"STR_VTSI_CREATE_SUCCESS":"VTSI -tiedosto luotiin onnistuneesti!#@Voit käyttää Rufus-ohjelmaa(3.15+) kirjoittaaksesi sen laitteeseen viimeistelläksesi Ventoy-asennuksen.",
|
||||
"STR_VTSI_CREATE_FAILED":"VTSI -tiedoston luominen epäonnistui.",
|
||||
"STRXXX":""
|
||||
}
|
||||
]
|
||||
|
|
|
@ -40,6 +40,9 @@ static CHAR g_prog_full_path[MAX_PATH];
|
|||
static CHAR g_prog_dir[MAX_PATH];
|
||||
static CHAR g_prog_name[MAX_PATH];
|
||||
|
||||
#define AUTO_RUN_BAT "X:\\VentoyAutoRun.bat"
|
||||
#define AUTO_RUN_LOG "X:\\VentoyAutoRun.log"
|
||||
|
||||
#define LOG_FILE "X:\\Windows\\system32\\ventoy.log"
|
||||
#define MUTEX_LOCK(hmutex) if (hmutex != NULL) LockStatus = WaitForSingleObject(hmutex, INFINITE)
|
||||
#define MUTEX_UNLOCK(hmutex) if (hmutex != NULL && WAIT_OBJECT_0 == LockStatus) ReleaseMutex(hmutex)
|
||||
|
@ -1251,7 +1254,9 @@ static int VentoyHook(ventoy_os_param *param)
|
|||
int rc;
|
||||
BOOL find = FALSE;
|
||||
CHAR Letter;
|
||||
CHAR MntLetter;
|
||||
DWORD Drives;
|
||||
DWORD NewDrives;
|
||||
DISK_EXTENT DiskExtent;
|
||||
UINT8 UUID[16];
|
||||
CHAR IsoPath[MAX_PATH];
|
||||
|
@ -1316,7 +1321,28 @@ static int VentoyHook(ventoy_os_param *param)
|
|||
|
||||
Log("Find ISO file <%s>", IsoPath);
|
||||
|
||||
Drives = GetLogicalDrives();
|
||||
Log("Drives before mount: 0x%x", Drives);
|
||||
|
||||
rc = MountIsoFile(IsoPath, DiskExtent.DiskNumber);
|
||||
|
||||
NewDrives = GetLogicalDrives();
|
||||
Log("Drives after mount: 0x%x", NewDrives);
|
||||
|
||||
MntLetter = 'A';
|
||||
NewDrives = (NewDrives ^ Drives);
|
||||
while (NewDrives)
|
||||
{
|
||||
if (NewDrives & 0x01)
|
||||
{
|
||||
Log("Maybe the ISO file is mounted at %C:", MntLetter);
|
||||
break;
|
||||
}
|
||||
|
||||
NewDrives >>= 1;
|
||||
MntLetter++;
|
||||
}
|
||||
|
||||
Log("Mount ISO FILE: %s", rc == 0 ? "SUCCESS" : "FAILED");
|
||||
|
||||
// for protect
|
||||
|
@ -1348,6 +1374,44 @@ static int VentoyHook(ventoy_os_param *param)
|
|||
{
|
||||
Log("decompress injection archive %s...", IsoPath);
|
||||
DecompressInjectionArchive(IsoPath, DiskExtent.DiskNumber);
|
||||
|
||||
if (IsFileExist("%s", AUTO_RUN_BAT))
|
||||
{
|
||||
HANDLE hOut;
|
||||
DWORD flags = CREATE_NO_WINDOW;
|
||||
CHAR StrBuf[1024];
|
||||
STARTUPINFOA Si;
|
||||
PROCESS_INFORMATION Pi;
|
||||
SECURITY_ATTRIBUTES Sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE };
|
||||
|
||||
Log("%s exist, now run it...", AUTO_RUN_BAT);
|
||||
|
||||
GetStartupInfoA(&Si);
|
||||
|
||||
hOut = CreateFileA(AUTO_RUN_LOG,
|
||||
FILE_APPEND_DATA,
|
||||
FILE_SHARE_WRITE | FILE_SHARE_READ,
|
||||
&Sa,
|
||||
OPEN_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
|
||||
Si.dwFlags |= STARTF_USESTDHANDLES;
|
||||
if (hOut != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
Si.hStdError = hOut;
|
||||
Si.hStdOutput = hOut;
|
||||
}
|
||||
|
||||
sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path);
|
||||
sprintf_s(StrBuf, sizeof(StrBuf), "cmd.exe /c %s \"%s\" %C", AUTO_RUN_BAT, IsoPath, MntLetter);
|
||||
CreateProcessA(NULL, StrBuf, NULL, NULL, TRUE, flags, NULL, NULL, &Si, &Pi);
|
||||
WaitForSingleObject(Pi.hProcess, INFINITE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log("%s not exist...", AUTO_RUN_BAT);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue