본문 바로가기
프로그래밍

👨‍💻 [MFC] MFC 에서 전원으로 배터리가 연결되었는지 확인할 수 있나요?

by 밝음의기둥 2024. 9. 3.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

MFC에서 윈도우에 전원으로 배터리가 연결되었는지 확인하는 방법에 대해서 물어봤습니다.


질문 >

MFC 에서 전원으로 배터리가 연결되었는지 확인할 수 있나요?

답변 >

MFC 애플리케이션에서 전원으로 배터리가 연결되었는지 확인하려면, Windows API를 사용하여 시스템의 전원 상태를 조회할 수 있습니다. 이를 위해 GetSystemPowerStatus 함수를 사용하면 됩니다. 이 함수는 시스템의 전원 상태를 나타내는 정보를 포함하는 SYSTEM_POWER_STATUS 구조체를 반환합니다.

코드 예시

#include <afxwin.h>  // MFC 헤더 파일#include <winbase.h> // GetSystemPowerStatus를 위해 필요void CheckBatteryStatus()
{
    SYSTEM_POWER_STATUS sps;
    if (GetSystemPowerStatus(&sps))
    {
        if (sps.BatteryFlag == 128)
        {
            AfxMessageBox(_T("배터리가 시스템에 연결되어 있지 않습니다."));
        }
        else
        {
            AfxMessageBox(_T("배터리가 시스템에 연결되어 있습니다."));
        }
    }
    else
    {
        AfxMessageBox(_T("전원 상태를 확인할 수 없습니다."));
    }
}

설명

  1. SYSTEM_POWER_STATUS 구조체:
    • ACLineStatus: 전원이 연결된 상태를 나타냅니다. (예: AC 전원, 배터리, 비상 전원 등)
    • BatteryFlag: 배터리 상태를 나타냅니다. 이 값에 따라 배터리 연결 여부를 판단할 수 있습니다.
      • 0: 배터리가 정상적으로 작동 중임을 나타냅니다.
      • 128: 시스템에 배터리가 연결되어 있지 않음을 나타냅니다.
  2. GetSystemPowerStatus 함수:
    • 이 함수는 시스템의 전원 상태를 조회하고, 성공 시 TRUE를 반환하며, 실패 시 FALSE를 반환합니다.
    • SYSTEM_POWER_STATUS 구조체를 통해 시스템의 전원 상태를 상세히 조회할 수 있습니다.
  3. 배터리 연결 여부 확인:
    • sps.BatteryFlag == 128을 체크하여 배터리가 연결되어 있지 않음을 확인합니다.
    • 이 외의 경우, 배터리가 연결되어 있다고 판단할 수 있습니다.

사용 예시

위 함수는 MFC 애플리케이션에서 배터리 상태를 확인하고, 사용자에게 배터리의 연결 상태를 알려주는 데 사용될 수 있습니다. 이 코드를 버튼 클릭 이벤트나 특정 작업 중에 호출하면 배터리 연결 여부를 확인할 수 있습니다.

void CMyAppDlg::OnBnClickedCheckBattery()
{
    CheckBatteryStatus();
}

이와 같이 MFC 애플리케이션에서 배터리 연결 상태를 쉽게 확인할 수 있으며, 시스템의 전원 상태에 따라 애플리케이션의 동작을 제어할 수 있습니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형