1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 10:42:36 +01:00

Always launch rpcs3.exe on restart

This commit is contained in:
RipleyTom 2020-04-05 10:26:57 +02:00 committed by Ivan
parent f33373ca1b
commit f36686b1a7
2 changed files with 10 additions and 5 deletions

View File

@ -18,7 +18,7 @@
std::string wchar_to_utf8(wchar_t *src) std::string wchar_to_utf8(wchar_t *src)
{ {
std::string utf8_string; std::string utf8_string;
auto tmp_size = WideCharToMultiByte(CP_UTF8, 0, src, -1, nullptr, 0, nullptr, nullptr); const auto tmp_size = WideCharToMultiByte(CP_UTF8, 0, src, -1, nullptr, 0, nullptr, nullptr);
utf8_string.resize(tmp_size); utf8_string.resize(tmp_size);
WideCharToMultiByte(CP_UTF8, 0, src, -1, utf8_string.data(), tmp_size, nullptr, nullptr); WideCharToMultiByte(CP_UTF8, 0, src, -1, utf8_string.data(), tmp_size, nullptr, nullptr);
return utf8_string; return utf8_string;
@ -47,7 +47,7 @@ std::string utf8_path_to_ansi_path(const std::string& src)
std::wstring buf_wide; std::wstring buf_wide;
// Converts the utf-8 path to wide char // Converts the utf-8 path to wide char
auto tmp_size = MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, nullptr, 0); const auto tmp_size = MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, nullptr, 0);
buf_wide.resize(tmp_size); buf_wide.resize(tmp_size);
MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, buf_wide.data(), tmp_size); MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, buf_wide.data(), tmp_size);

View File

@ -333,8 +333,13 @@ bool update_manager::handle_rpcs3()
#ifdef _WIN32 #ifdef _WIN32
// Get executable path // Get executable path
wchar_t orig_path[32767]; const std::string orig_path = Emulator::GetExeDir() + "rpcs3.exe";
GetModuleFileNameW(nullptr, orig_path, sizeof(orig_path) / 2);
std::wstring wchar_orig_path;
const auto tmp_size = MultiByteToWideChar(CP_UTF8, 0, orig_path.c_str(), -1, nullptr, 0);
wchar_orig_path.resize(tmp_size);
MultiByteToWideChar(CP_UTF8, 0, orig_path.c_str(), -1, wchar_orig_path.data(), tmp_size);
#endif #endif
#ifdef __linux__ #ifdef __linux__
@ -596,7 +601,7 @@ bool update_manager::handle_rpcs3()
QMessageBox::information(m_parent, tr("Auto-updater"), tr("Update successful!")); QMessageBox::information(m_parent, tr("Auto-updater"), tr("Update successful!"));
#ifdef _WIN32 #ifdef _WIN32
const int ret = _wexecl(orig_path, orig_path, L"--updating", nullptr); const int ret = _wexecl(wchar_orig_path.data(), wchar_orig_path.data(), L"--updating", nullptr);
#else #else
const int ret = execl(replace_path.c_str(), replace_path.c_str(), "--updating", nullptr); const int ret = execl(replace_path.c_str(), replace_path.c_str(), "--updating", nullptr);
#endif #endif