From 67d1a8eea85bd4413d5e6551d780f7ead5515d76 Mon Sep 17 00:00:00 2001 From: BushYan Date: Mon, 16 Oct 2023 10:24:26 -0400 Subject: [PATCH] Supports longer "CommandLine" --- src/config.h | 5 +++-- src/portable.h | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/config.h b/src/config.h index 5cd456b..b1fe5f3 100644 --- a/src/config.h +++ b/src/config.h @@ -10,13 +10,14 @@ bool IsIniExist() } // 如果 ini 存在,从中读取 CommandLine;如果 ini 不存在,或者存在,但是 CommandLine 为空,则返回空字符串 +// 改成最大 1024 个字符 std::wstring GetCrCommandLine() { if (IsIniExist()) { std::wstring IniPath = GetAppDir() + L"\\chrome++.ini"; - TCHAR CommandLineBuffer[MAX_PATH]; - ::GetPrivateProfileStringW(L"General", L"CommandLine", L"", CommandLineBuffer, MAX_PATH, IniPath.c_str()); + TCHAR CommandLineBuffer[1024]; + ::GetPrivateProfileStringW(L"General", L"CommandLine", L"", CommandLineBuffer, 1024, IniPath.c_str()); return std::wstring(CommandLineBuffer); } else diff --git a/src/portable.h b/src/portable.h index a9dceb6..8574c5e 100644 --- a/src/portable.h +++ b/src/portable.h @@ -79,7 +79,7 @@ std::wstring GetCommand(LPWSTR param) { args.push_back(L"--portable"); - args.push_back(L"--disable-features=RendererCodeIntegrity,FlashDeprecationWarning"); + args.push_back(L"--disable-features=RendererCodeIntegrity"); // 获取命令行,然后追加参数 // 如果存在 = 号,参数会被识别成值 @@ -89,6 +89,8 @@ std::wstring GetCommand(LPWSTR param) // 然后再把提取出来的部分从原有的字符串中删除,再 push_back 剩下的部分 // 重复上述过程,直到字符串中不再存在 = 号 // 这样就可以保证参数不会被识别成值了 + // 似乎必须特殊处理等号,暂时不知道怎么一起处理 + if (GetCrCommandLine().length() > 0) { auto cr_command_line = GetCrCommandLine(); std::wstring temp = cr_command_line; @@ -115,7 +117,7 @@ std::wstring GetCommand(LPWSTR param) } } } - + // 单独处理剩余参数 while (true) { auto pos1 = temp.find(L"--");