请问各位: 怎样在程序中"关闭"显示器(调用哪个 API 才能象 Windows "电源管理"中那样使显示器的指示灯由亮变暗-进入休眠状态)?而不是用"SendMessage(Application->Handle,WM_SYSCOMMAND,SC_MONITORPOWER,2);")之类的发送消息的方法。 多谢!
解决方案 »
- TVideoGrabber网络传输的问题
- 怎么把大量图片打包
- 在Delphi中判断用户是否有超期未还的书本
- 怎样象WORD操作图形一样使用鼠标?
- 各位有沒有過FastReports3.0的?幫幫忙看看EAccessviolation問題是怎麼一會事?
- "symbol 'faarchive' is specific to a platform"这是为什么呢?
- Access+Delphi中的模糊查询问题?
- 关于TListView 的单元格内容的 编辑修改
- 非常非常紧急的问题!!!不搞定肯定被炒!!!
- .dll question
- 谁知道DELPHI 7的注册码?
- 有没有函数能得出MS SQL SERVER 安装在哪个目录?
var
hdlProcessHandle : Cardinal;
hdlTokenHandle : Cardinal;
tmpLuid : Int64;
tkp : TOKEN_PRIVILEGES;
tkpNewButIgnored : TOKEN_PRIVILEGES;
lBufferNeeded : Cardinal;
Privilege : array[0..0] of _LUID_AND_ATTRIBUTES;
begin
hdlProcessHandle := GetCurrentProcess;
OpenProcessToken(hdlProcessHandle,
(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY),
hdlTokenHandle);
// Get the LUID for shutdown privilege.
LookupPrivilegeValue('', 'SeShutdownPrivilege', tmpLuid);
Privilege[0].Luid := tmpLuid;
Privilege[0].Attributes := SE_PRIVILEGE_ENABLED;
tkp.PrivilegeCount := 1; // One privilege to set
tkp.Privileges[0] := Privilege[0];
// Enable the shutdown privilege in the access token of this process.
AdjustTokenPrivileges(hdlTokenHandle,False,tkp,Sizeof(tkpNewButIgnored),
tkpNewButIgnored,lBufferNeeded);
end;procedure TForm1.N22Click(Sender: TObject);
begin
if MessageBox(Handle,'确定要休眠吗?','提问:',MB_YESNO+MB_ICONQUESTION)= idYes then
begin
AdjustToken;
SetSystemPowerState(false,True);
end;
end;//绝对有效,散分了