人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

用VC++完成Windows 2000/XP下的休眠

用VC++完成Windows 2000/XP下的休眠

更新時間:2022-08-31 文章作者:未知 信息來源:網絡 閱讀次數:

實現休眠功能很簡單,只要在任意想要執行的地方執行如下給出的休眠函數SetPower()就行,其實休眠很簡單,只需要API:SetSystemPowerState()就行,就如關機/注銷/重啟一樣,只需要ExitWindowEx(),但這些API可以直接用在98下,卻不能用在2000/XP中,因為這里牽涉到了用戶權限,沒有權限是不能進行這些操作的,所以,首先要取得權限,下面給出代碼:

  #define RTN_ERROR 13


  void PERR(LPTSTR szAPI, DWORD dwLastError) //休眠時調用到的一個函數,用來

  ////記錄休眠中遇到的錯誤

  {

  LPTSTR MessageBuffer;

  DWORD dwBufferLength;

  fprintf(stderr,"%s error! (rc=%lu)\n", szAPI, dwLastError);

  if(dwBufferLength=FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |

  FORMAT_MESSAGE_FROM_SYSTEM,

  NULL,

  dwLastError,

  LANG_NEUTRAL,

  (LPTSTR) &MessageBuffer,

  0,

  NULL))

  {

  DWORD dwBytesWritten;

  WriteFile(GetStdHandle(STD_ERROR_HANDLE),

  MessageBuffer,

  dwBufferLength,

  &dwBytesWritten,

  NULL);

  LocalFree(MessageBuffer);

  }

  }

  INT SetPower()有//主要功能函數

  {

  TOKEN_PRIVILEGES tp;

  HANDLE hToken;

  LUID luid;

  LPTSTR MachineName=NULL;

  if(!OpenProcessToken(GetCurrentProcess(), ////////從這里////////////////////////////

  TOKEN_ADJUST_PRIVILEGES,

  &hToken ))

  {

  PERR("OpenProcessToken", GetLastError() );

  return RTN_ERROR;

  }

  if(!LookupPrivilegeValue(MachineName, SE_SHUTDOWN_NAME, &luid))

  {

  PERR("LookupPrivilegeValue", GetLastError() );

  return RTN_ERROR;

  }

  tp.PrivilegeCount = 1;

  tp.Privileges[0].Luid = luid;

  tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

  AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),

  NULL, NULL ); ////////////////到這里,是取得權限//////////////////////

  SetSystemPowerState(FALSE,TRUE);

  return 0;

  }

  這樣,在任意需要休眠的時候調用SetPower();即可休眠,但是有一點要注意:必須打開了高級電源管理的休眠支持。 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 成武县| 雅安市| 海宁市| 濮阳市| 论坛| 休宁县| 竹山县| 湖南省| 灵武市| 图片| 永修县| 竹溪县| 富阳市| 定州市| 台湾省| 三亚市| 长沙县| 中江县| 赞皇县| 亚东县| 景德镇市| 萍乡市| 大城县| 于都县| 扬州市| 边坝县| 新闻| 安福县| 闵行区| 怀化市| 吉林市| 万州区| 南开区| 如东县| 霍邱县| 青阳县| 台中市| 青川县| 奉化市| 泸定县| 屯昌县|