jak wyłączyć ekran laptopa za pomocą jeżyka c++ , chodzi o wachowne funckje c++ a potem jak włączyć , program może być konsolowy
0
1
Można użyć funkcji SendMessage, albo PostMessage. Wysyłają komunikat do systemu, który może ustawić różne wartości, np. właśnie zasilanie ekranu.
//Wyłączenie ekranu
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2);
//Włączenie ekranu
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)-1);
Główna różnica między PostMessage a SendMessage jest to, że przy SendMessage program czeka, aż funkcja się wykona, a w przypadku PostMessage program idzie dalej. Żeby tego użyć potrzebujesz Windows.h. Przetestowałem u mnie i działało prawidłowo.
Mój kod testowy:
#include <Windows.h>
#include <iostream>
#include <chrono>
#include <thread>
int main() {
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2);
std::this_thread::sleep_for(std::chrono::seconds(5));
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)-1);
return 0;
}
Jedyny mankament to to, że gdy ruszysz myszką, albo wciśniesz jakiś klawisz, to ekran automatycznie się wybudza.
0
wielkie dzięki za pomoc
0
WM_SYSCOMMAND message (Winuser.h) - Win32 apps | Microsoft Learn
Value | Meaning |
---|---|
SC_MONITORPOWER 0xF170 | Sets the state of the display. This command supports devices that have power-saving features, such as a battery-powered personal computer. The lParam parameter can have the following values:
|
0
jak sprawdzić stan ekranu czy jest wyłączony czy włączony jakąś funkcją zwracającą true albo false np?