Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 7712|回复: 6

wince下的重起和关屏、休眠调用方法,Wm6.1 P800测试通过

[复制链接]

该用户从未签到

发表于 2009-2-28 16:13:45 | 显示全部楼层 |阅读模式
一、重启PPC
   ExitWindowsEx(2,0); (注意在Uses中必须加入aygshell,否则不能调用,为这个我找了好久的资料)

二、休眠
  最简单,直接调用  GwesPowerOffSystem;

三、关屏,比较复杂一些,提供一段完整代码
procedure TForm1._OffScreenClick(Sender: PObj);
Const
  QUERYESCSUPPORT=8;
  SETPOWERMANAGEMENT=6147;
  //GETPOWERMANAGEMENT=6148;

Var
  fQueryEsc,rc:Integer;
  _hdc:HDC;
  vpm:VIDEO_POWER_MANAGEMENT;

begin
   //关闭屏幕
  _hdc := GetDC (NULL);
  fQueryEsc:= SETPOWERMANAGEMENT;
  rc:= ExtEscape(_hdc,QUERYESCSUPPORT,sizeof(fQueryEsc),PAnsiChar(@fQueryEsc),0,0);
  if (rc = 0) then
   ReleaseDC (NULL, _hdc);

  vpm.Length := sizeof (vpm);
  vpm.DPMSVersion := 1;
  vpm.PowerState := Ord(VideoPowerOff);
  rc:= ExtEscape(_hdc, SETPOWERMANAGEMENT,sizeof(vpm), @vpm, 0, 0);
  ReleaseDC (NULL, _hdc);
   //退出程序
  Form.Close;

end;


  第一次用Lazarus+kol-ce编程,很多东西和DELPHI完全不一样,而且用KOL必须用其自身提供的函数,而不能用FreePascal标准函数,难度要大多了,不过为了程序最精简化,也值了,基本是用API在开发了
  感谢群里的很多大侠的帮助!

评分

参与人数 1威望 +15 收起 理由
猫工 + 15 互相帮助,相互学习

查看全部评分

回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-3-5 09:47:39 | 显示全部楼层
终于解决了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-3-5 10:22:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-1-19 20:01:56 | 显示全部楼层
win5不能用
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-4-22 14:35:14 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-4-2 12:00:45 | 显示全部楼层
补充一下,关屏与亮度设置,到目前为止没有一个统一的说法。
目前很大程度上是要依赖厂家的驱动实现的。
而楼主提供的关屏方法则是微软提供的,比较通用,但不通吃。接长电(没备电)的设备就一般都不生效。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-2-24 07:07:42 | 显示全部楼层
学习了!
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-7-2 01:05 , Processed in 0.034891 second(s), 14 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表