728x90
#include <iostream>
#include <memory>
#include <windows.h>
#include <winuser.h>
bool IsScreenLocked()
{
HDESK desktopHandle = OpenInputDesktop(0, false, DESKTOP_SWITCHDESKTOP);
if (desktopHandle == 0)
{
desktopHandle = OpenDesktopA("Default", 0, false, DESKTOP_SWITCHDESKTOP);
}
if (desktopHandle != 0)
{
if (SwitchDesktop(desktopHandle))
{
CloseDesktop(desktopHandle);
}
else
{
CloseDesktop(desktopHandle);
return true;
}
} return false;
}
bool IsScreenSaverRunning()
{
int isRunning = 0;
if (!SystemParametersInfo(SPI_GETSCREENSAVERRUNNING, 0, &isRunning, 0))
{
return false;
}
if (isRunning)
{
return true;
}
return false;
}
int main()
{
while (true)
{
if (IsScreenLocked())
{
printf("LockScreen : true");
}
else
{
printf("LockScreen : false");
}
if (IsScreenSaverRunning())
{
printf("ScreenSaver : true");
}
else
{
printf("ScreenSaver : false");
}
Sleep(100);
}
}
728x90
'Basic Programming > C, C++' 카테고리의 다른 글
C/C++ - push_macro() (0) | 2022.10.12 |
---|---|
C/C++ - vcpkg에서 MT, MD 변경 방법 (0) | 2022.02.17 |
C++ - Precise Sleep (0) | 2021.12.13 |
C++ - 서비스 프로그램 만들기 (0) | 2021.12.10 |
C++ - 난수 생성하기 (rand()를 사용하지 않기) (0) | 2020.10.14 |