Да, необходимо понять кванты времени ОС. В Windows Вы не будете даже получать время разрешения на 1 мс, если Вы не измените квант времени на 1 мс. (Используя, например, timeBeginPeriod ()/timeEndPeriod ()), Который все еще ничего действительно не гарантирует. Даже немного загрузки или единственный дрянной драйвер устройства отбросят все.
SetThreadPriority () помогает, но довольно опасен. Плохие драйверы устройств могут все еще разрушить Вас.
Вам нужна ультрауправляемая вычислительная среда, чтобы заставить этот ужасный материал работать вообще.
Функция GetWindowPlacement
возвращает структуру WINDOWPLACEMENT
, которая имеет поле showCmd
:
Определяет текущее состояние отображения окна.
Подробности здесь читаются так, как если бы вы устанавливали состояние окна, но я подозреваю, что это потому, что они были скопированы откуда-то еще и не обновляется.
Есть свойство Visible
, но оно проверяет флаг видимого, оно не сообщает вам, закрыто ли окно другим окном, за пределами экрана и т. Д. .. Это намного сложнее. Однако у Раймонда Чена есть несколько советов:
http://blogs.msdn.com/oldnewthing/archive/2003/09/02/54758.aspx
http://blogs.msdn.com/oldnewthing/archive /2003/08/29/54728.aspx[1247 visible
bool isHwndVisible = Control.FromHandle(handle).Visible