NEWS

[C#] Hướng dẫn viết ứng dụng ngăn chặn tự động tắt màn hình máy tính khi không sử dụng

[C#] Hướng dẫn viết ứng dụng ngăn chặn tự động tắt màn hình máy tính khi không sử dụng
Đăng bởi: Thảo Meo - Lượt xem: 4488 16:05:33, 18/03/2022C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn viết một ứng dụng nhỏ, ngăn chặn máy tính tự động tắt màn hình khi chúng ta không sử dụng.

[C#] Chặn tắt màn hình máy tính Winform

Bình thường thì chúng ta có thể thiết lập thời gian để máy tính tự động tắt màn hình khi không sử dụng.

lock_monitor

Tuy nhiên, nếu máy tính của bạn Join vào Domain của công ty, thì bạn không được phép chỉnh sửa lại thời gian này.

Nhiều lúc cài đặt 3 phút, bạn xoay qua xoay lại là màn hình lại tắt, bắt buộc bạn phải nhập username và password lại để login.

Để giải quyết trường hợp này, các bạn có thể sử dụng đoạn code ở bên dưới đây:

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Monon
{

    public partial class FormMain : Form
    {

        [FlagsAttribute]
        public enum EXECUTION_STATE : uint
        {
            ES_AWAYMODE_REQUIRED = 0x00000040,
            ES_CONTINUOUS = 0x80000000,
            ES_DISPLAY_REQUIRED = 0x00000002,
            ES_SYSTEM_REQUIRED = 0x00000001
            // Legacy flag, should not be used.
            // ES_USER_PRESENT = 0x00000004
        }

        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);

        public FormMain()
        {
            InitializeComponent();
        }

        private void keepOnSw_CheckedChanged(object sender, EventArgs e)
        {
            prevent_screensaver(keepOnSw.Checked);
        }

        private void prevent_screensaver(bool sw)
        {
            if (sw) 
            {
                SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS);
            }
            else
            {
                SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS);
            }
        }

        private void FormMain_Load(object sender, EventArgs e)
        {
            keepOnSw.Checked = true;
        }

        private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            prevent_screensaver(false);
        }

    }
}

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn viết ứng dụng ngăn chặn tự động tắt màn hình máy tính khi không sử dụng
Đăng bởi: Thảo Meo - Lượt xem: 4488 16:05:33, 18/03/2022C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.