Как определить, заблокирована ли текущая сессия Windows или нет?

Полагаю, вам нужна записка, чтобы всегда оставаться в верхнем левом углу? Даже при прокрутке?

Вы можете сделать это только с помощью CSS! :)

HTML:

<div id="Note" name="Note">Example</div>

CSS:

div #Note {
  background-color:rgb(255,255,204)
  left: 0px;
  position: absolute;
  top: 0px;
  z-index: 999;
}

@media screen {
  body > div #Note {
    position: fixed;
  }
}

РЕДАКТИРОВАТЬ: С несколькими примечаниями (не проверено):

HTML:

<div id="Note1">Example</div>
<div id="Note2">Example</div>
<div id="Note3">Example</div>
<div id="Note4">Example</div>

CSS:

div #Note1 {
  background-color:rgb(255,255,204)
  left: 0px;
  height: 20px;
  position: absolute;
  top: 0px;
  z-index: 999;
}
div #Note2 {
  background-color:rgb(255,255,204)
  left: 0px;
  height: 20px;
  position: absolute;
  top: 20px;
  z-index: 999;
}
div #Note3 {
  background-color:rgb(255,255,204)
  left: 0px;
  height: 20px;
  position: absolute;
  top: 40px;
  z-index: 999;
}
div #Note4 {
  background-color:rgb(255,255,204)
  left: 0px;
  height: 20px;
  position: absolute;
  top: 60px;
  z-index: 999;
}

@media screen {
  body > div #Note1 {
    position: fixed;
  }

  body > div #Note2 {
    position: fixed;
  }

  body > div #Note3 {
    position: fixed;
  }

  body > div #Note4 {
    position: fixed;
  }
}
6
задан Martin 19 June 2009 в 04:40
поделиться

2 ответа

Я не проверял, но выглядит интересно. Я бы устроил им тест, но моя Visual Studio, похоже, меня не очень устраивает.

1
ответ дан 17 December 2019 в 22:14
поделиться

Однажды я использовал функцию GetForegroundWindow () , чтобы определить, работает ли хранитель экрана. Если возвращаемое значение было NULL , значит, была активна экранная заставка (или, предположительно, заблокированная рабочая станция). Обратите внимание, что это было в первые дни Windows NT, это не описано в документации, и нет никакой гарантии, что он будет делать то же самое и сегодня.

Глядя на справочник Win32 API, вы можете что-то использовать например OpenInputDesktop () , чтобы получить HDESK текущего активного рабочего стола. Если вы не можете получить дескриптор рабочего стола или если он отличается от рабочего стола вашего потока, значит, ваше приложение работает на неактивном рабочем столе (и рабочая станция, вероятно, либо находится в состоянии заставки, либо заблокирована). Нет гарантий, что этот метод сработает,

0
ответ дан 17 December 2019 в 22:14
поделиться