1.10.2g
This commit is contained in:
parent
7f043d73a2
commit
a86de9925f
|
@ -14,7 +14,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
### Fixed
|
### Fixed
|
||||||
- fixed issues with pinned shortcuts
|
- fixed issues with pinned shortcuts
|
||||||
- fixed Process Suspend/Resume context menu [#3156](https://github.com/sandboxie-plus/Sandboxie/issues/3156)
|
- fixed Process Suspend/Resume context menu [#3156](https://github.com/sandboxie-plus/Sandboxie/issues/3156)
|
||||||
|
- fixed issues with Installers created with Qt [#2493](https://github.com/sandboxie-plus/Sandboxie/issues/2493) [#3153](https://github.com/sandboxie-plus/Sandboxie/issues/3153)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -220,6 +220,25 @@ _FX BOOL Gui_ConnectConsole(ULONG ShowFlag)
|
||||||
|
|
||||||
if (! AttachConsole(rpl->process_id))
|
if (! AttachConsole(rpl->process_id))
|
||||||
status = STATUS_NOT_SAME_DEVICE;
|
status = STATUS_NOT_SAME_DEVICE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// wait for the count to inidcate the service has quit
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef DWORD (*P_GetConsoleProcessList)(LPDWORD lpdwProcessList, DWORD dwProcessCount);
|
||||||
|
P_GetConsoleProcessList GetConsoleProcessList = (P_GetConsoleProcessList)
|
||||||
|
GetProcAddress(Dll_Kernel32, "GetConsoleProcessList");
|
||||||
|
|
||||||
|
DWORD pids[10]; // 2 should be enough but lets go with 10
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
|
||||||
|
Sleep(50);
|
||||||
|
|
||||||
|
ULONG num_pids = GetConsoleProcessList(pids, ARRAYSIZE(pids));
|
||||||
|
if (num_pids < 2)
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Dll_Free(rpl);
|
Dll_Free(rpl);
|
||||||
|
@ -264,6 +283,7 @@ _FX void Gui_InitConsole2(void)
|
||||||
HANDLE *Handles;
|
HANDLE *Handles;
|
||||||
HMODULE User32;
|
HMODULE User32;
|
||||||
|
|
||||||
|
// $Workaround$ - 3rd party fix
|
||||||
//
|
//
|
||||||
// hack: the Kaspersky process klwtblfs.exe is protected from
|
// hack: the Kaspersky process klwtblfs.exe is protected from
|
||||||
// termination through TerminateProcess, so make sure we terminate
|
// termination through TerminateProcess, so make sure we terminate
|
||||||
|
|
|
@ -4306,9 +4306,7 @@ void GuiServer::RunConsoleSlave(const WCHAR *evtname)
|
||||||
|
|
||||||
HANDLE hEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, evtname);
|
HANDLE hEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, evtname);
|
||||||
|
|
||||||
const ULONG max_pids = 16000;
|
DWORD pids[10]; // 2 should be enough but lets go with 10
|
||||||
ULONG pids_len = max_pids * sizeof(ULONG);
|
|
||||||
ULONG *pids = (ULONG *)HeapAlloc(GetProcessHeap(), 0, pids_len);
|
|
||||||
|
|
||||||
if (hEvent && pids) {
|
if (hEvent && pids) {
|
||||||
|
|
||||||
|
@ -4329,18 +4327,13 @@ void GuiServer::RunConsoleSlave(const WCHAR *evtname)
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
Sleep(2000);
|
Sleep(50);
|
||||||
|
|
||||||
ULONG num_pids = GetConsoleProcessList(pids, max_pids);
|
ULONG num_pids = GetConsoleProcessList(pids, ARRAYSIZE(pids));
|
||||||
if (num_pids > 1 && num_pids < max_pids) {
|
if (num_pids > 1)
|
||||||
|
|
||||||
Sleep(2000);
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//HeapFree(GetProcessHeap(), 0, pids); // don't bother we ExitProcess aynways
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ExitProcess(0);
|
ExitProcess(0);
|
||||||
|
|
Loading…
Reference in New Issue