вот это происходит при запуске вручную моей программы (не из студии) при неудачном выводе окна наверх(когда окно по каким-то причинам не выводится):
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &dwTimeout, 0); //true
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, 0);//false
SetForegroundWindow(hWnd);//false
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)dwTimeout, 0);//false
|
Как видим, функции возвращают false. они ведут себя странно - казалось бы, однотипные функции. Параметры получает, а устанавливать не хочет. В студии все идеально, ошибок нет, возвращаемые значения - true.
В чем же может быть причина?
MSDN говорит:
The calling thread must be able to change the foreground window, otherwise the call fails.
|
Но как мне узнать, способен ли поток изменить окно переднего плана?