]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
1. Fix the issue that Ventoy2Disk_X64.exe can not run under altexe directory.
authorlongpanda <admin@ventoy.net>
Sat, 14 Jan 2023 13:56:19 +0000 (21:56 +0800)
committerlongpanda <admin@ventoy.net>
Sat, 14 Jan 2023 13:56:19 +0000 (21:56 +0800)
2. Fix the issue that VentoyPlugson_X64.exe exit silently.
3. Add missing /FS option for Ventoy2Disk.exe in Windows command line mode.
4. Ventoy2Disk.exe automatically change current directory when started from other directory.

12 files changed:
INSTALL/Ventoy2Disk.exe
INSTALL/Ventoy2Disk_ARM.exe
INSTALL/Ventoy2Disk_ARM64.exe
INSTALL/Ventoy2Disk_X64.exe
Plugson/src/Core/ventoy_log.c
Plugson/src/main_windows.c
Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe
Plugson/vs/VentoyPlugson/VentoyPlugson/Res/Plugson64.manifest
Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj
Plugson/vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe
Ventoy2Disk/Ventoy2Disk/WinDialog.c
Ventoy2Disk/Ventoy2Disk/ventoy_cli.c

index 80161e2030144cc68cc3e44e5cb79ee64705536e..a50ab469ba277f97c54cea6e1f0e290ed3d90d90 100644 (file)
Binary files a/INSTALL/Ventoy2Disk.exe and b/INSTALL/Ventoy2Disk.exe differ
index 2ded21298e7d7d5f0800ab51386dbe1e27086d57..0a062955633c6a31ddd9f69bcd4d0646361c2367 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_ARM.exe and b/INSTALL/Ventoy2Disk_ARM.exe differ
index 49031c83a01de714ec875b441d60db0448880280..bd2c1466f641acc183f5f6f598f8b5a962cde27c 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_ARM64.exe and b/INSTALL/Ventoy2Disk_ARM64.exe differ
index 4271cf07bb88e9fa754b0d5c9c7fd82c4a280c3c..abeeea6a4e115c30d1b07eb5b31210c284618d9d 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_X64.exe and b/INSTALL/Ventoy2Disk_X64.exe differ
index 68bd50c0bc627cfeaf9947e5788fc335ab3ac4a7..2e089f7a2293c31247c5a2bb9d33e95cfb844bd1 100644 (file)
@@ -54,8 +54,6 @@ void ventoy_set_loglevel(int level)
     g_ventoy_log_level = level;
 }
 
-
-
 void ventoy_syslog_printf(const char *Fmt, ...)
 {
     char log[512];
index 7eea97624762c9e92ff12ecdf5d7d7f7618993aa..49e89c3f504fdf5a5058d8ab8fd1bfdd385cb171 100644 (file)
@@ -82,6 +82,14 @@ const WCHAR *g_msg_en[MSGID_BUTT] =
        L"ventoy\\plugson.tar.xz does not exist, please run under the correct directory!",\r
 };\r
 \r
+#define UTF8_Log(fmt, wstr) \\r
+{\\r
+    memset(TmpPathA, 0, sizeof(TmpPathA));\\r
+    WideCharToMultiByte(CP_UTF8, 0, wstr, -1, TmpPathA, sizeof(TmpPathA), NULL, NULL);\\r
+    vlog(fmt, TmpPathA);\\r
+}\r
+\r
+\r
 const WCHAR **g_msg_lang = NULL;\r
 \r
 HINSTANCE g_hInst;\r
@@ -399,7 +407,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
         {\r
             InitDialog(hWnd, wParam, lParam);\r
             break;\r
-        }        \r
+        }\r
         case WM_CLOSE:\r
         {\r
                        if (g_running)\r
@@ -414,6 +422,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
 \r
             OnDestroyDialog();\r
             EndDialog(hWnd, 0);\r
+                       break;\r
         }\r
     }\r
 \r
@@ -527,8 +536,14 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
 {\r
        int i;\r
     int rc;\r
+       int status = 0;\r
        HANDLE hMutex;\r
+       WCHAR* Pos = NULL;\r
        WCHAR CurDir[MAX_PATH];\r
+       WCHAR ExePath[MAX_PATH];\r
+       WCHAR CurDirBk[MAX_PATH];\r
+       WCHAR ExePathBk[MAX_PATH];\r
+       CHAR TmpPathA[MAX_PATH];\r
 \r
     UNREFERENCED_PARAMETER(hPrevInstance);\r
 \r
@@ -562,12 +577,67 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
        }\r
 \r
        GetCurrentDirectoryW(MAX_PATH, CurDir);\r
+       GetCurrentDirectoryW(MAX_PATH, CurDirBk);\r
+       GetModuleFileNameW(NULL, ExePath, MAX_PATH);\r
+       GetModuleFileNameW(NULL, ExePathBk, MAX_PATH);\r
+\r
+       for (Pos = NULL, i = 0; i < MAX_PATH && ExePath[i]; i++)\r
+       {\r
+               if (ExePath[i] == '\\' || ExePath[i] == '/')\r
+               {\r
+                       Pos = ExePath + i;\r
+               }\r
+       }\r
+\r
+       if (Pos)\r
+       {\r
+               *Pos = 0;\r
+               if (wcscmp(CurDir, ExePath))\r
+               {\r
+                       status |= 1;\r
+                       SetCurrentDirectoryW(ExePath);\r
+                       GetCurrentDirectoryW(MAX_PATH, CurDir);\r
+               }\r
+               else\r
+               {\r
+                       status |= 2;\r
+               }\r
+       }\r
+\r
+       Pos = wcsstr(CurDir, L"\\altexe");\r
+       if (Pos)\r
+       {\r
+               *Pos = 0;\r
+               status |= 4;\r
+               SetCurrentDirectoryW(CurDir);\r
+       }\r
+\r
+\r
        WideCharToMultiByte(CP_UTF8, 0, CurDir, -1, g_cur_dir, MAX_PATH, NULL, 0);\r
 \r
        sprintf_s(g_ventoy_dir, sizeof(g_ventoy_dir), "%s", g_cur_dir);\r
-       sprintf_s(g_log_file, sizeof(g_log_file), "%s\\%s", g_cur_dir, LOG_FILE);\r
+       sprintf_s(g_log_file, sizeof(g_log_file), "%s", LOG_FILE);\r
        ventoy_log_init();\r
 \r
+       vlog("====================== Ventoy Plugson =========================\n");\r
+\r
+       UTF8_Log("Current Directory <%s>\n", CurDirBk);\r
+       UTF8_Log("Exe file path <%s>\n", ExePathBk);\r
+       \r
+       if (status & 1)\r
+       {\r
+               UTF8_Log("Change current dir to exe <%s>\n", ExePath);\r
+       }\r
+       if (status & 2)\r
+       {\r
+               vlog("Current directory check OK.\n");\r
+       }\r
+       if (status & 4)\r
+       {\r
+               UTF8_Log("altexe detected, change current dir to <%s>\n", CurDir);\r
+       }\r
+\r
+\r
     if (!ventoy_is_file_exist("%s\\ventoy\\%s", g_ventoy_dir, PLUGSON_TXZ))\r
     {        \r
                MessageBoxW(NULL, g_msg_lang[MSGID_NO_TARXZ_TIP], g_msg_lang[MSGID_ERROR], MB_OK | MB_ICONERROR);\r
@@ -585,7 +655,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
        }\r
 \r
        vlog("===============================================\n");\r
-       vlog("===== Ventoy Plugson %s:%s =====\n", g_sysinfo.ip, g_sysinfo.port);\r
+       vlog("========= Ventoy Plugson %s:%s =========\n", g_sysinfo.ip, g_sysinfo.port);\r
        vlog("===============================================\n");\r
 \r
 \r
@@ -605,7 +675,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
     ventoy_http_init();\r
 \r
     g_hInst = hInstance;\r
-    DialogBoxA(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);\r
+    DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);\r
 \r
     return 0;\r
 }\r
index 9e0f026302feb174efaf7949887ca640d71fd469..ad3baf81ccc86075b6380b826f1125dc895a56c0 100644 (file)
Binary files a/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe and b/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe differ
index a0559d75f886b7921846e3cf5f110412bcb981aa..c073523eaaa9cad8dff6b6a2ba36fe37d203a390 100644 (file)
             <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> \r
         </application>\r
     </compatibility>\r
-    \r
+       <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">\r
+               <security>\r
+                 <requestedPrivileges>\r
+                       <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>\r
+                 </requestedPrivileges>\r
+               </security>\r
+       </trustInfo>    \r
 </assembly>
\ No newline at end of file
index c1a19798d99c527b98b1100fafa133711881ab12..34611fdf9beb590c391f9f59493d4edd3ae2d679 100644 (file)
       <DelayLoadDLLs>gdi32.dll;winspool.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;uuid.dll;odbc32.dll;odbccp32.dll</DelayLoadDLLs>\r
     </Link>\r
     <Manifest>\r
-      <AdditionalManifestFiles>$(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>\r
+      <AdditionalManifestFiles>$(ProjectDir)\Res\Plugson64.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>\r
     </Manifest>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
index 0f51ab0368ec34681e1fc317dfbf9aade281a307..359403018d860459b11047b02bc913428d614238 100644 (file)
Binary files a/Plugson/vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe and b/Plugson/vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe differ
index 7ae9195807360215c6be356ef0a0020fb4222494..cfebec9cf04d18c14b54171fd5a25dcc7e832240 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/WinDialog.c and b/Ventoy2Disk/Ventoy2Disk/WinDialog.c differ
index 8adffcae6c66442d3b52ec26268ea348c501c9c2..55ffbd23b758db24c4e6014b7ab9fc1c638e9a9a 100644 (file)
@@ -233,6 +233,10 @@ static int CLI_CheckParam(int argc, char** argv, PHY_DRIVE_INFO* pDrvInfo, CLI_C
             {\r
                 fstype = VTOY_FS_FAT32;\r
             }\r
+            else if (_stricmp(opt + 4, "UDF") == 0)\r
+            {\r
+                fstype = VTOY_FS_UDF;\r
+            }\r
         }\r
     }\r
 \r