?? ppcdisplay.cpp
字號:
#include "windows.h"
#include "PpcDisplay.h"
#define QUERYESCSUPPORT 8
#define GETVFRAMEPHYSICAL 6144
#define GETVFRAMELEN 6145
#define DBGDRIVERSTAT 6146
#define SETPOWERMANAGEMENT 6147
#define GETPOWERMANAGEMENT 6148
typedef enum _VIDEO_POWER_STATE {
VideoPowerOn = 1,
VideoPowerStandBy,
VideoPowerSuspend,
VideoPowerOff
} VIDEO_POWER_STATE, *PVIDEO_POWER_STATE;
typedef struct _VIDEO_POWER_MANAGEMENT {
ULONG Length;
ULONG DPMSVersion;
ULONG PowerState;
} VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT;
#if 0 // old versions
void ToggleDisplay()
{
#ifdef _WIN32_WCE_EMULATION
return;
#endif
// check
HDC hDC = ::GetDC(NULL);
int nESC = SETPOWERMANAGEMENT;
if (!ExtEscape(hDC, QUERYESCSUPPORT, sizeof(int), (LPCSTR)&nESC, 0, NULL)) {
ReleaseDC(NULL, hDC);
return; // cannot tern off;
}
// get current status
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = VideoPowerOn;
ExtEscape(hDC, GETPOWERMANAGEMENT, 0, NULL, vpm.Length, (LPSTR) &vpm);
vpm.PowerState = (vpm.PowerState == VideoPowerOn) ?
VideoPowerOff : VideoPowerOn;
ExtEscape(hDC, SETPOWERMANAGEMENT, vpm.Length, (LPCSTR) &vpm, 0, NULL);
ReleaseDC(NULL, hDC);
}
BOOL GetDisplayStatus()
{
#ifdef _WIN32_WCE_EMULATION
return TRUE;
#endif
// check
HDC hDC = ::GetDC(NULL);
int nESC = SETPOWERMANAGEMENT;
if (!ExtEscape(hDC, QUERYESCSUPPORT, sizeof(int), (LPCSTR)&nESC, 0, NULL)) {
ReleaseDC(NULL, hDC);
return TRUE; // cannot tern off;
}
// get current status
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = VideoPowerOn;
ExtEscape(hDC, GETPOWERMANAGEMENT, 0, NULL, vpm.Length, (LPSTR) &vpm);
ReleaseDC(NULL, hDC);
return (vpm.PowerState == VideoPowerOn);
}
void TurnOnDisplay()
{
#ifdef _WIN32_WCE_EMULATION
return;
#endif
// check
HDC hDC = ::GetDC(NULL);
int nESC = SETPOWERMANAGEMENT;
if (!ExtEscape(hDC, QUERYESCSUPPORT, sizeof(int), (LPCSTR)&nESC, 0, NULL)) {
ReleaseDC(NULL, hDC);
return; // cannot tern off;
}
// get current status
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = VideoPowerOn;
ExtEscape(hDC, GETPOWERMANAGEMENT, 0, NULL, vpm.Length, (LPSTR) &vpm);
if (vpm.PowerState == VideoPowerOn) {
ReleaseDC(NULL, hDC);
return;
}
vpm.PowerState = VideoPowerOn;
ExtEscape(hDC, SETPOWERMANAGEMENT, vpm.Length, (LPCSTR) &vpm, 0, NULL);
ReleaseDC(NULL, hDC);
}
void TurnOffDisplay()
{
#ifdef _WIN32_WCE_EMULATION
return;
#endif
// check
HDC hDC = ::GetDC(NULL);
int nESC = SETPOWERMANAGEMENT;
if (!ExtEscape(hDC, QUERYESCSUPPORT, sizeof(int), (LPCSTR)&nESC, 0, NULL)) {
ReleaseDC(NULL, hDC);
return; // cannot tern off;
}
// get current status
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = VideoPowerOn;
ExtEscape(hDC, GETPOWERMANAGEMENT, 0, NULL, vpm.Length, (LPSTR) &vpm);
if (vpm.PowerState != VideoPowerOn) {
ReleaseDC(NULL, hDC);
return;
}
vpm.PowerState = VideoPowerOff;
ExtEscape(hDC, SETPOWERMANAGEMENT, vpm.Length, (LPCSTR) &vpm, 0, NULL);
ReleaseDC(NULL, hDC);
}
#else
// new version (no checking)
// GETPOWERMANAGEMENT偑傑偲傕偵幚憰偝傟偰偄側偄E-3000傗
// 儃僞儞傪墴偡偲彑庤偵僨傿僗僾儗僀偑ON偵側傞iPAQ h1937 (PocketPC2003)懳嶔
ULONG g_fPowerState = VideoPowerOn;
void ToggleDisplay()
{
#ifdef _WIN32_WCE_EMULATION
return;
#endif
// iPAQ h1937 (PocketPC2003)偼儃僞儞傪墴偡偲彑庤偵僨傿僗僾儗僀偑側傞偨傔
// 慜夞偺僗僥乕僞僗傪尦偵愗傝懼偊傞
HDC hDC = ::GetDC(NULL);
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = (g_fPowerState == VideoPowerOn) ?
VideoPowerOff : VideoPowerOn;
if (ExtEscape(hDC, SETPOWERMANAGEMENT, vpm.Length, (LPCSTR) &vpm, 0, NULL) > 0)
g_fPowerState = vpm.PowerState;
ReleaseDC(NULL, hDC);
}
BOOL GetDisplayStatus()
{
#ifdef _WIN32_WCE_EMULATION
return TRUE;
#endif
// check
HDC hDC = ::GetDC(NULL);
// get current status
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = 0;
ExtEscape(hDC, GETPOWERMANAGEMENT, 0, NULL, vpm.Length, (LPSTR) &vpm);
ReleaseDC(NULL, hDC);
if (vpm.PowerState == 0)
g_fPowerState = vpm.Length; // E-3000偼vpm.Length偵抣傪奿擺偡傞 (bug!!)
else
g_fPowerState = vpm.PowerState;
return (g_fPowerState == VideoPowerOn);
}
void TurnOnDisplay()
{
#ifdef _WIN32_WCE_EMULATION
return;
#endif
HDC hDC = ::GetDC(NULL);
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = VideoPowerOn;
if (ExtEscape(hDC, SETPOWERMANAGEMENT, vpm.Length, (LPCSTR) &vpm, 0, NULL) > 0)
g_fPowerState = vpm.PowerState;
ReleaseDC(NULL, hDC);
}
void TurnOffDisplay()
{
#ifdef _WIN32_WCE_EMULATION
return;
#endif
HDC hDC = ::GetDC(NULL);
VIDEO_POWER_MANAGEMENT vpm;
vpm.Length = sizeof(VIDEO_POWER_MANAGEMENT);
vpm.DPMSVersion = 0x0001;
vpm.PowerState = VideoPowerOff;
if (ExtEscape(hDC, SETPOWERMANAGEMENT, vpm.Length, (LPCSTR) &vpm, 0, NULL) > 0)
g_fPowerState = vpm.PowerState;
ReleaseDC(NULL, hDC);
}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -