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;
|
g_ventoy_log_level = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ventoy_syslog_printf(const char *Fmt, ...)
|
void ventoy_syslog_printf(const char *Fmt, ...)
|
||||||
{
|
{
|
||||||
char log[512];
|
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!",
|
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;
|
const WCHAR **g_msg_lang = NULL;
|
||||||
|
|
||||||
HINSTANCE g_hInst;
|
HINSTANCE g_hInst;
|
||||||
|
@ -414,6 +422,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
|
||||||
|
|
||||||
OnDestroyDialog();
|
OnDestroyDialog();
|
||||||
EndDialog(hWnd, 0);
|
EndDialog(hWnd, 0);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -527,8 +536,14 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int rc;
|
int rc;
|
||||||
|
int status = 0;
|
||||||
HANDLE hMutex;
|
HANDLE hMutex;
|
||||||
|
WCHAR* Pos = NULL;
|
||||||
WCHAR CurDir[MAX_PATH];
|
WCHAR CurDir[MAX_PATH];
|
||||||
|
WCHAR ExePath[MAX_PATH];
|
||||||
|
WCHAR CurDirBk[MAX_PATH];
|
||||||
|
WCHAR ExePathBk[MAX_PATH];
|
||||||
|
CHAR TmpPathA[MAX_PATH];
|
||||||
|
|
||||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
UNREFERENCED_PARAMETER(hPrevInstance);
|
||||||
|
|
||||||
|
@ -562,12 +577,67 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
||||||
}
|
}
|
||||||
|
|
||||||
GetCurrentDirectoryW(MAX_PATH, CurDir);
|
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);
|
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_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();
|
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))
|
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);
|
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("===============================================\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");
|
vlog("===============================================\n");
|
||||||
|
|
||||||
|
|
||||||
|
@ -605,7 +675,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
||||||
ventoy_http_init();
|
ventoy_http_init();
|
||||||
|
|
||||||
g_hInst = hInstance;
|
g_hInst = hInstance;
|
||||||
DialogBoxA(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -27,5 +27,11 @@
|
||||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||||
</application>
|
</application>
|
||||||
</compatibility>
|
</compatibility>
|
||||||
|
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<security>
|
||||||
|
<requestedPrivileges>
|
||||||
|
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
</assembly>
|
</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>
|
<DelayLoadDLLs>gdi32.dll;winspool.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;uuid.dll;odbc32.dll;odbccp32.dll</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
<AdditionalManifestFiles>$(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
|
<AdditionalManifestFiles>$(ProjectDir)\Res\Plugson64.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||||
</Manifest>
|
</Manifest>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<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;
|
fstype = VTOY_FS_FAT32;
|
||||||
}
|
}
|
||||||
|
else if (_stricmp(opt + 4, "UDF") == 0)
|
||||||
|
{
|
||||||
|
fstype = VTOY_FS_UDF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue