mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2025-02-17 11:08:41 +01:00
Properties GUI is restarted after setup
This commit is contained in:
parent
4b66794fc7
commit
8f9ecf68e4
@ -3129,7 +3129,7 @@ DWORD WindowSwitcher(DWORD unused)
|
||||
void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
{
|
||||
HKEY hKey = NULL;
|
||||
DWORD dwSize = 0;
|
||||
DWORD dwSize = 0, dwTemp = 0;
|
||||
|
||||
RegCreateKeyExW(
|
||||
HKEY_CURRENT_USER,
|
||||
@ -3137,7 +3137,7 @@ void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
0,
|
||||
NULL,
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_READ | KEY_WOW64_64KEY,
|
||||
KEY_READ | KEY_WOW64_64KEY | KEY_WRITE,
|
||||
NULL,
|
||||
&hKey,
|
||||
NULL
|
||||
@ -3157,17 +3157,17 @@ void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
&bAllocConsole,
|
||||
&dwSize
|
||||
);
|
||||
DWORD bMemcheck = FALSE;
|
||||
dwSize = sizeof(DWORD);
|
||||
dwTemp = 0;
|
||||
RegQueryValueExW(
|
||||
hKey,
|
||||
TEXT("Memcheck"),
|
||||
0,
|
||||
NULL,
|
||||
&bMemcheck,
|
||||
&dwTemp,
|
||||
&dwSize
|
||||
);
|
||||
if (bMemcheck)
|
||||
if (dwTemp)
|
||||
{
|
||||
#if defined(DEBUG) | defined(_DEBUG)
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
@ -3178,13 +3178,13 @@ void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
|
||||
_CrtDumpMemoryLeaks();
|
||||
#endif
|
||||
bMemcheck = FALSE;
|
||||
dwTemp = 0;
|
||||
RegSetValueExW(
|
||||
hKey,
|
||||
TEXT("Memcheck"),
|
||||
0,
|
||||
REG_DWORD,
|
||||
&bMemcheck,
|
||||
&dwTemp,
|
||||
sizeof(DWORD)
|
||||
);
|
||||
}
|
||||
@ -3418,6 +3418,29 @@ void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
&bToolbarSeparators,
|
||||
&dwSize
|
||||
);
|
||||
dwSize = sizeof(DWORD);
|
||||
dwTemp = 0;
|
||||
RegQueryValueExW(
|
||||
hKey,
|
||||
TEXT("OpenPropertiesAtNextStart"),
|
||||
0,
|
||||
NULL,
|
||||
&dwTemp,
|
||||
&dwSize
|
||||
);
|
||||
if (dwTemp)
|
||||
{
|
||||
LaunchPropertiesGUI(hModule);
|
||||
dwTemp = 0;
|
||||
RegSetValueExW(
|
||||
hKey,
|
||||
TEXT("OpenPropertiesAtNextStart"),
|
||||
0,
|
||||
REG_DWORD,
|
||||
&dwTemp,
|
||||
sizeof(DWORD)
|
||||
);
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
|
@ -364,14 +364,66 @@ int WINAPI wWinMain(
|
||||
|
||||
GetSystemDirectoryW(wszPath, MAX_PATH);
|
||||
wcscat_s(wszPath, MAX_PATH, L"\\taskkill.exe");
|
||||
ShellExecuteW(
|
||||
NULL,
|
||||
L"open",
|
||||
wszPath,
|
||||
L"/f /im explorer.exe",
|
||||
NULL,
|
||||
SW_SHOWMINIMIZED
|
||||
);
|
||||
SHELLEXECUTEINFOW sei;
|
||||
ZeroMemory(&sei, sizeof(SHELLEXECUTEINFOW));
|
||||
sei.cbSize = sizeof(sei);
|
||||
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
|
||||
sei.hwnd = NULL;
|
||||
sei.hInstApp = NULL;
|
||||
sei.lpVerb = NULL;
|
||||
sei.lpFile = wszPath;
|
||||
sei.lpParameters = L"/f /im explorer.exe";
|
||||
sei.hwnd = NULL;
|
||||
sei.nShow = SW_SHOWMINIMIZED;
|
||||
if (ShellExecuteExW(&sei) && sei.hProcess)
|
||||
{
|
||||
WaitForSingleObject(sei.hProcess, INFINITE);
|
||||
CloseHandle(sei.hProcess);
|
||||
}
|
||||
|
||||
DWORD dwGUIPid = 0;
|
||||
GetWindowThreadProcessId(FindWindowW(L"ExplorerPatcher_GUI_" _T(EP_CLSID), NULL), &dwGUIPid);
|
||||
if (dwGUIPid)
|
||||
{
|
||||
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwGUIPid);
|
||||
if (hProcess)
|
||||
{
|
||||
TerminateProcess(hProcess, 0);
|
||||
CloseHandle(hProcess);
|
||||
|
||||
HKEY hKey = NULL;
|
||||
DWORD dwSize = 0;
|
||||
|
||||
RegCreateKeyExW(
|
||||
HKEY_CURRENT_USER,
|
||||
TEXT(REGPATH),
|
||||
0,
|
||||
NULL,
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_READ | KEY_WOW64_64KEY | KEY_WRITE,
|
||||
NULL,
|
||||
&hKey,
|
||||
NULL
|
||||
);
|
||||
if (hKey == NULL || hKey == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
hKey = NULL;
|
||||
}
|
||||
if (hKey)
|
||||
{
|
||||
dwSize = TRUE;
|
||||
RegSetValueExW(
|
||||
hKey,
|
||||
TEXT("OpenPropertiesAtNextStart"),
|
||||
0,
|
||||
REG_DWORD,
|
||||
&dwSize,
|
||||
sizeof(DWORD)
|
||||
);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bOk)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user