]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
1. Add support for some special WinPE
authorlongpanda <admin@ventoy.net>
Sat, 16 Oct 2021 15:34:53 +0000 (23:34 +0800)
committerlongpanda <admin@ventoy.net>
Sat, 16 Oct 2021 15:34:53 +0000 (23:34 +0800)
2. Add VentoyAutoRun.bat feature

INSTALL/ventoy/vtoyjump32.exe
INSTALL/ventoy/vtoyjump64.exe
LANGUAGES/languages.json
vtoyjump/vtoyjump/vtoyjump.c

index 7259ef24b347b74b6fbd94541efa6e5c35cc3452..db8d0f2805f4547d5711c7cf3a7d8c8df9dce8cb 100644 (file)
Binary files a/INSTALL/ventoy/vtoyjump32.exe and b/INSTALL/ventoy/vtoyjump32.exe differ
index 4693f2e63091a4299c5d6f4e16320b498a2d546b..9e52ce4c319b6a01c46e957ad52e0f8aadc3b7e1 100644 (file)
Binary files a/INSTALL/ventoy/vtoyjump64.exe and b/INSTALL/ventoy/vtoyjump64.exe differ
index d7c2cd89ce4a91764ed2e320e824986cfd07b42a..4a4fd0cf2b522a21b31410384b6bb817ea7ba44e 100644 (file)
         "STR_VTSI_CREATE_SUCCESS":"VTSI ֆայլը հաջողությամբ ստեղծվեց!#@Դուք կարող եք օգտագործել Rufus (3.15+) կրիչում ձայնագրելու համար, որպեսզի ավարտեք Ventoy-ի տեղադրումը:",
         "STR_VTSI_CREATE_FAILED":"VTSI ֆայլի ստեղծումը ձախողվեց։",
         "STRXXX":""
         "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":""
     }
 ]
     }
 ]
index 46a5fceb6a1cac0dc75e67a1d3d7f742e8a11ba2..aea2711856dd40b96b598fac4d3181103add277b 100644 (file)
@@ -40,6 +40,9 @@ static CHAR g_prog_full_path[MAX_PATH];
 static CHAR g_prog_dir[MAX_PATH];\r
 static CHAR g_prog_name[MAX_PATH];\r
 \r
 static CHAR g_prog_dir[MAX_PATH];\r
 static CHAR g_prog_name[MAX_PATH];\r
 \r
+#define AUTO_RUN_BAT    "X:\\VentoyAutoRun.bat"\r
+#define AUTO_RUN_LOG    "X:\\VentoyAutoRun.log"\r
+\r
 #define LOG_FILE  "X:\\Windows\\system32\\ventoy.log"\r
 #define MUTEX_LOCK(hmutex)  if (hmutex != NULL) LockStatus = WaitForSingleObject(hmutex, INFINITE)\r
 #define MUTEX_UNLOCK(hmutex)  if (hmutex != NULL && WAIT_OBJECT_0 == LockStatus) ReleaseMutex(hmutex)\r
 #define LOG_FILE  "X:\\Windows\\system32\\ventoy.log"\r
 #define MUTEX_LOCK(hmutex)  if (hmutex != NULL) LockStatus = WaitForSingleObject(hmutex, INFINITE)\r
 #define MUTEX_UNLOCK(hmutex)  if (hmutex != NULL && WAIT_OBJECT_0 == LockStatus) ReleaseMutex(hmutex)\r
@@ -1251,7 +1254,9 @@ static int VentoyHook(ventoy_os_param *param)
     int rc;\r
     BOOL find = FALSE;\r
     CHAR Letter;\r
     int rc;\r
     BOOL find = FALSE;\r
     CHAR Letter;\r
+    CHAR MntLetter;\r
     DWORD Drives;\r
     DWORD Drives;\r
+    DWORD NewDrives;\r
        DISK_EXTENT DiskExtent;\r
        UINT8 UUID[16];\r
        CHAR IsoPath[MAX_PATH];\r
        DISK_EXTENT DiskExtent;\r
        UINT8 UUID[16];\r
        CHAR IsoPath[MAX_PATH];\r
@@ -1316,7 +1321,28 @@ static int VentoyHook(ventoy_os_param *param)
 \r
        Log("Find ISO file <%s>", IsoPath);\r
     \r
 \r
        Log("Find ISO file <%s>", IsoPath);\r
     \r
+    Drives = GetLogicalDrives();\r
+    Log("Drives before mount: 0x%x", Drives);\r
+\r
     rc = MountIsoFile(IsoPath, DiskExtent.DiskNumber);\r
     rc = MountIsoFile(IsoPath, DiskExtent.DiskNumber);\r
+\r
+    NewDrives = GetLogicalDrives();\r
+    Log("Drives after mount: 0x%x", NewDrives);\r
+\r
+    MntLetter = 'A';\r
+    NewDrives = (NewDrives ^ Drives);\r
+    while (NewDrives)\r
+    {\r
+        if (NewDrives & 0x01)\r
+        {\r
+            Log("Maybe the ISO file is mounted at %C:", MntLetter);\r
+            break;\r
+        }\r
+\r
+        NewDrives >>= 1;\r
+        MntLetter++;\r
+    }\r
+\r
     Log("Mount ISO FILE: %s", rc == 0 ? "SUCCESS" : "FAILED");\r
 \r
     // for protect\r
     Log("Mount ISO FILE: %s", rc == 0 ? "SUCCESS" : "FAILED");\r
 \r
     // for protect\r
@@ -1348,6 +1374,44 @@ static int VentoyHook(ventoy_os_param *param)
         {\r
             Log("decompress injection archive %s...", IsoPath);\r
             DecompressInjectionArchive(IsoPath, DiskExtent.DiskNumber);\r
         {\r
             Log("decompress injection archive %s...", IsoPath);\r
             DecompressInjectionArchive(IsoPath, DiskExtent.DiskNumber);\r
+\r
+            if (IsFileExist("%s", AUTO_RUN_BAT))\r
+            {\r
+                HANDLE hOut;\r
+                DWORD flags = CREATE_NO_WINDOW;\r
+                CHAR StrBuf[1024];\r
+                STARTUPINFOA Si;\r
+                PROCESS_INFORMATION Pi;\r
+                SECURITY_ATTRIBUTES Sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE };\r
+\r
+                Log("%s exist, now run it...", AUTO_RUN_BAT);\r
+\r
+                GetStartupInfoA(&Si);\r
+\r
+                hOut = CreateFileA(AUTO_RUN_LOG,\r
+                    FILE_APPEND_DATA,\r
+                    FILE_SHARE_WRITE | FILE_SHARE_READ,\r
+                    &Sa,\r
+                    OPEN_ALWAYS,\r
+                    FILE_ATTRIBUTE_NORMAL,\r
+                    NULL);\r
+\r
+                Si.dwFlags |= STARTF_USESTDHANDLES;\r
+                if (hOut != INVALID_HANDLE_VALUE)\r
+                {\r
+                    Si.hStdError = hOut;\r
+                    Si.hStdOutput = hOut;\r
+                }\r
+\r
+                sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path);\r
+                sprintf_s(StrBuf, sizeof(StrBuf), "cmd.exe /c %s \"%s\" %C", AUTO_RUN_BAT, IsoPath, MntLetter);\r
+                CreateProcessA(NULL, StrBuf, NULL, NULL, TRUE, flags, NULL, NULL, &Si, &Pi);\r
+                WaitForSingleObject(Pi.hProcess, INFINITE);\r
+            }\r
+            else\r
+            {\r
+                Log("%s not exist...", AUTO_RUN_BAT);\r
+            }\r
         }\r
         else\r
         {\r
         }\r
         else\r
         {\r