Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Вырубить монитор 2

Delphi , ОС и Железо , Монитор и Экран

Вырубить монитор 2

Во рожа! Попеняю монитору...


SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, 0);


SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, -1);

Here is the translation of the text into Russian:

Похоже, вы пытаетесь отключить или отменить монитор с помощью Windows API. Вот что делают каждая строка кода:

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, 0);

Эта строка отправляет сообщение окна всем верхним уровням окон (HWND_BROADCAST) с типом WM_SYSCOMMAND и wParam, установленным в 0. Это сообщение используется для запроса, чтобы получатель выполнил системное действие.

В этом случае, вероятно, оно используется для отключения или отмены монитора. Однако без дополнительного контекста или информации о конкретной приложении или ситуации трудно сказать, что именно произойдет, когда вы отправите это сообщение.

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, -1);

Эта строка похожа на первую, но она устанавливает wParam в -1 вместо 0. Согласно документации Windows API, отправка WM_SYSCOMMAND с wParam, равным -1, отключит все мониторы.

Важно отметить, что эти сообщения могут не работать в каждом случае или приложении. Например, если приложение не обрабатывает это сообщение правильно, оно может вызвать неожиданное поведение или даже зависнуть. Кроме того, некоторые современные системы могут не отвечать на эти сообщения вообще.

Если вы пытаетесь отключить монитор программно, вам может быть полезно использовать более прямые и надежные методы, такие как функция EnumDisplayDevices или функция SetDeviceState из Windows API. Эти функции позволяют запросить и управлять дисплейными устройствами напрямую, что может быть более надежным, чем отправка оконных сообщений.

Вот пример использования SetDeviceState для отключения монитора:

#include <Windows.h>

// Получаем устройство интерфейса для основного монитора
DEV_BROADCAST_DEVICEINTERFACE dbi;
dbi.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
dbi.dbcc_reserved = 0;

if (EnumDisplayDevices(NULL, 0, &dbi, EDD_GET_DEVICE_INTERFACE)) {
    // Устанавливаем устройство в отключенном состоянии
    if (SetDeviceState(&dbi.dev_bfdev, 1 << DBTFLAG_DISABLED) == FALSE) {
        printf("Ошибка установки устройства\n");
    } else {
        printf("Монитор отключен успешно\n");
    }
} else {
    printf("Ошибка получения интерфейса устройства\n");
}

В этом примере мы сначала перечисляем дисплейные устройства с помощью EnumDisplayDevices. Затем получаем указатель на устройство интерфейса основного монитора и используем SetDeviceState для его отключения. Обратите внимание, что вам нужно включать заголовки Windows API (windows.h) и связывать библиотеку user32.lib для использования этих функций.

Помните всегда проверять возвращаемые значения этих функций, чтобы убедиться, что они были выполнены успешно, и быть осведомленными о любых потенциальных ошибках или исключениях, которые могут возникнуть.

Код на языке Visual Basic, позволяющий вырубить монитор компьютера.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Монитор и Экран ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 18:46:11/0.0051798820495605/2