找回密码
 立即注册
查看: 851|回复: 4

C语言 电脑关机、重启、注销源码

[复制链接]

43

回帖

156

基友

192

积分

凡人2阶 Lv.2

Rank: 1

发表于 2013-7-23 14:14:09 | 显示全部楼层 |阅读模式
运行环境:VS


#include <tchar.h>
#include <Windows.h>


BOOL EnableShutDownPriv()
{
        HANDLE hToken = NULL;
        TOKEN_PRIVILEGES tkp = {0};
        if ( !OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ) {
                return FALSE;
        }
        if ( !LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid ) ) {
                CloseHandle( hToken );
                return FALSE;
        }
        tkp.PrivilegeCount = 1;
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

        if ( !AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL ) ) {
                CloseHandle( hToken );
                return FALSE;
        }
        return TRUE;
}

BOOL ReSetWindows(DWORD dwFlags, BOOL bForce)
{
        //Check the param;
        if ( dwFlags != EWX_LOGOFF && dwFlags != EWX_REBOOT && dwFlags != EWX_SHUTDOWN ) {
                return FALSE;
        }

        //Get the os version;
        OSVERSIONINFO osvi = {0};
        osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if ( !GetVersionEx(&osvi) ) {
                return FALSE;
        }
        if ( osvi.dwPlatformId == VER_PLATFORM_WIN32_NT ) {
                EnableShutDownPriv();
        }
        dwFlags |= (bForce != FALSE) ? EWX_FORCE : EWX_FORCEIFHUNG;
        return ExitWindowsEx(dwFlags, 0);
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
        if ( _tcscmp(lpCmdLine, _T("/r")) == 0 ) {
                ReSetWindows(EWX_REBOOT, FALSE);
        }else if ( _tcscmp(lpCmdLine, _T("/s")) == 0 ) {
                ReSetWindows(EWX_SHUTDOWN, FALSE);
        }else if ( _tcscmp(lpCmdLine, _T("/l")) == 0 ) {
                ReSetWindows(EWX_LOGOFF, FALSE);
        }
        return 0;
}
回复

使用道具 举报

104

回帖

124

基友

222

积分

凡人3阶 Lv.3

Rank: 2

发表于 2013-7-24 14:33:45 | 显示全部楼层
哇哇哇 流弊的样子啊啊啊  围观围观 0.0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|苍海国际 ( 鲁ICP备13020644号-1 )

GMT+8, 2024-5-20 11:14 , Processed in 0.031108 second(s), 22 queries .

Powered by Discuz! Theme By eRic Modified by 4bpa

© CangHai International We Do Our Rights!

返回顶部