mirror of https://github.com/ventoy/Ventoy.git
1. Fix the issue that Ventoy2Disk_X64.exe can not run under altexe directory.
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.
This commit is contained in:
parent
3e34dd8514
commit
4f5334026e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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];
|
||||
|
|
|
@ -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!",
|
||||
};
|
||||
|
||||
#define UTF8_Log(fmt, wstr) \
|
||||
{\
|
||||
memset(TmpPathA, 0, sizeof(TmpPathA));\
|
||||
WideCharToMultiByte(CP_UTF8, 0, wstr, -1, TmpPathA, sizeof(TmpPathA), NULL, NULL);\
|
||||
vlog(fmt, TmpPathA);\
|
||||
}
|
||||
|
||||
|
||||
const WCHAR **g_msg_lang = NULL;
|
||||
|
||||
HINSTANCE g_hInst;
|
||||
|
@ -399,7 +407,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
|
|||
{
|
||||
InitDialog(hWnd, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
}
|
||||
case WM_CLOSE:
|
||||
{
|
||||
if (g_running)
|
||||
|
@ -414,6 +422,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
|
|||
|
||||
OnDestroyDialog();
|
||||
EndDialog(hWnd, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -527,8 +536,14 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
|||
{
|
||||
int i;
|
||||
int rc;
|
||||
int status = 0;
|
||||
HANDLE hMutex;
|
||||
WCHAR* Pos = NULL;
|
||||
WCHAR CurDir[MAX_PATH];
|
||||
WCHAR ExePath[MAX_PATH];
|
||||
WCHAR CurDirBk[MAX_PATH];
|
||||
WCHAR ExePathBk[MAX_PATH];
|
||||
CHAR TmpPathA[MAX_PATH];
|
||||
|
||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
||||
|
||||
|
@ -562,12 +577,67 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
|||
}
|
||||
|
||||
GetCurrentDirectoryW(MAX_PATH, CurDir);
|
||||
GetCurrentDirectoryW(MAX_PATH, CurDirBk);
|
||||
GetModuleFileNameW(NULL, ExePath, MAX_PATH);
|
||||
GetModuleFileNameW(NULL, ExePathBk, MAX_PATH);
|
||||
|
||||
for (Pos = NULL, i = 0; i < MAX_PATH && ExePath[i]; i++)
|
||||
{
|
||||
if (ExePath[i] == '\\' || ExePath[i] == '/')
|
||||
{
|
||||
Pos = ExePath + i;
|
||||
}
|
||||
}
|
||||
|
||||
if (Pos)
|
||||
{
|
||||
*Pos = 0;
|
||||
if (wcscmp(CurDir, ExePath))
|
||||
{
|
||||
status |= 1;
|
||||
SetCurrentDirectoryW(ExePath);
|
||||
GetCurrentDirectoryW(MAX_PATH, CurDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
status |= 2;
|
||||
}
|
||||
}
|
||||
|
||||
Pos = wcsstr(CurDir, L"\\altexe");
|
||||
if (Pos)
|
||||
{
|
||||
*Pos = 0;
|
||||
status |= 4;
|
||||
SetCurrentDirectoryW(CurDir);
|
||||
}
|
||||
|
||||
|
||||
WideCharToMultiByte(CP_UTF8, 0, CurDir, -1, g_cur_dir, MAX_PATH, NULL, 0);
|
||||
|
||||
sprintf_s(g_ventoy_dir, sizeof(g_ventoy_dir), "%s", g_cur_dir);
|
||||
sprintf_s(g_log_file, sizeof(g_log_file), "%s\\%s", g_cur_dir, LOG_FILE);
|
||||
sprintf_s(g_log_file, sizeof(g_log_file), "%s", LOG_FILE);
|
||||
ventoy_log_init();
|
||||
|
||||
vlog("====================== Ventoy Plugson =========================\n");
|
||||
|
||||
UTF8_Log("Current Directory <%s>\n", CurDirBk);
|
||||
UTF8_Log("Exe file path <%s>\n", ExePathBk);
|
||||
|
||||
if (status & 1)
|
||||
{
|
||||
UTF8_Log("Change current dir to exe <%s>\n", ExePath);
|
||||
}
|
||||
if (status & 2)
|
||||
{
|
||||
vlog("Current directory check OK.\n");
|
||||
}
|
||||
if (status & 4)
|
||||
{
|
||||
UTF8_Log("altexe detected, change current dir to <%s>\n", CurDir);
|
||||
}
|
||||
|
||||
|
||||
if (!ventoy_is_file_exist("%s\\ventoy\\%s", g_ventoy_dir, PLUGSON_TXZ))
|
||||
{
|
||||
MessageBoxW(NULL, g_msg_lang[MSGID_NO_TARXZ_TIP], g_msg_lang[MSGID_ERROR], MB_OK | MB_ICONERROR);
|
||||
|
@ -585,7 +655,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
|||
}
|
||||
|
||||
vlog("===============================================\n");
|
||||
vlog("===== Ventoy Plugson %s:%s =====\n", g_sysinfo.ip, g_sysinfo.port);
|
||||
vlog("========= Ventoy Plugson %s:%s =========\n", g_sysinfo.ip, g_sysinfo.port);
|
||||
vlog("===============================================\n");
|
||||
|
||||
|
||||
|
@ -605,7 +675,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
|||
ventoy_http_init();
|
||||
|
||||
g_hInst = hInstance;
|
||||
DialogBoxA(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
|
||||
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -27,5 +27,11 @@
|
|||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
</assembly>
|
|
@ -169,7 +169,7 @@
|
|||
<DelayLoadDLLs>gdi32.dll;winspool.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;uuid.dll;odbc32.dll;odbccp32.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>$(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||
<AdditionalManifestFiles>$(ProjectDir)\Res\Plugson64.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -233,6 +233,10 @@ static int CLI_CheckParam(int argc, char** argv, PHY_DRIVE_INFO* pDrvInfo, CLI_C
|
|||
{
|
||||
fstype = VTOY_FS_FAT32;
|
||||
}
|
||||
else if (_stricmp(opt + 4, "UDF") == 0)
|
||||
{
|
||||
fstype = VTOY_FS_UDF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue