根据时间关机

原创 2012年03月24日 21:33:31

为了限制我妈使用电脑的程序。

是有早上8点以后以及完善8点之前用电脑,否则一开机就是关机。

#include <windows.h>
#include <stdio.h>


 BOOL MySystemShutdown() 
 { 
     HANDLE hToken; 
     TOKEN_PRIVILEGES tkp; 
     if (!OpenProcessToken(GetCurrentProcess(), 
     TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
     return (FALSE); 
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); 
    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
    AdjustTokenPrivileges(hToken,FALSE, &tkp,0,(PTOKEN_PRIVILEGES)NULL, 0); 
    if (GetLastError() != ERROR_SUCCESS) return FALSE;  
    if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) return FALSE; 
    return TRUE; 
} 

int main( void )
{
SYSTEMTIME sys;
GetLocalTime( &sys ); //sys.wHour  sys.wMinute;
if (sys.wHour<8 || sys.wHour>20)
{
	MySystemShutdown; //关机
	char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
	HKEY hkResult;
	int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
	ret=RegSetValueEx(hkResult,"yatere"/* 注册表键名*/,0,REG_SZ,(unsigned char *)"%systemroot%\\system32\\yatere.exe",34);
	if(ret==0){
	printf("success to write run key\n");
	RegCloseKey(hkResult);
	}
	else {
	printf("failed to open regedit.%d\n",ret);
	return 0;
	}
	char modlepath[256];
	GetModuleFileName(0,modlepath,256);//取得程序名字
	char syspath[256];
	GetSystemDirectory(syspath,256);
	ret=CopyFile(modlepath,strcat(syspath,"\\yatere.exe"),1);
	if(ret)
	{
	printf("%s has been copyed to sys dir %s\n",modlepath,syspath);
	}
	else printf("%s is exisis",modlepath);

}
 
return 0;
}


相关文章推荐

python 软件漏斗挖掘脚本

排版有问题,修改了以下。官网无法下载。 把这个作为摸班了把 from pydbg import * from pydbg.defines import * import utils...
  • yatere
  • yatere
  • 2012年02月29日 18:36
  • 1040

windows 关机 从起代码

需要提升权限啊啊啊啊啊啊 #include BOOL MySystemShutdown() { HANDLE hToken; TOKEN_PRIV...
  • yatere
  • yatere
  • 2012年03月24日 20:50
  • 632

windows server 2008 r2, 每隔一段时间自动关机

前段时间在做Exchange 2010测试的时候,由于windows server 2008  r2试用过期,开机后二个小时就会自动关机,可是我又不想重装系统,加为那样我可能需要重装好多东西,包括DN...
  • yw1688
  • yw1688
  • 2013年05月02日 16:09
  • 897

怎样查看上一次开关机的时间

本文转载http://playkid.blog.163.com/blog/static/5628726020124216833275/ 在WindowsXP中,我们可以通过「事件查看...
  • ccfxue
  • ccfxue
  • 2016年09月20日 17:43
  • 672

【C++程序】[新手向]自动定时关机+限定时间内无法开机工程

整理代码片时找到了几个月以前写的完整工程,贴出来以供参考。 代码如下: #include #include #include #include #include #pragma comm...

【系统帮助之减少电脑关机时间】

无论用什么样的系统关机快慢都是用户在意的问题之一,有些用户甚至用开机或者关机快慢来定义自己电脑的好坏。为此小编特地为大家准备了减少关机时间的教程,大家要看看哦。   提高关机速度节省时间小窍门  ...

桌面文本时钟TXTCLOCK- 记录系统登录,关机时间

你是不是忘了打下班卡了,上个月某一天,考勤又出错了,你的下班记录不见了,这时你需要一个见证你上下班时间的小软件:TXTCLOCK一个记录开关机时间的软件...

处理 windows server 2008 r2 每隔一段时间自动关机笔记

由于windows server 2008  r2试用过期,或激活不完全(我是efi的2008)开机后二个小时就会自动关机,我们知道系统是靠slms来检测激活,及开机二个小时关机的。可是这个服务又不能...

【Win XP】查看XP系统开机和关机时间

方法一:  默认Windows的任务计划是启动的,因此可以通过查看任务计划的日志来查看开关机的时间。因为在开机时会有一条任务计划启动的日志,具体位置在C:\windows(winnt)下的Sched...
  • ypist
  • ypist
  • 2013年02月05日 11:39
  • 4606

电脑关机后自动重启开机,或过一段时间自动重启开机问题解决

最近电脑碰到这样一个问题:电脑点击关机后,电脑注销关机,但是又随之出现一个黑屏页面,上面显示如下类似的信息:      Inter (R) Boot Agent CL V0.1.06      Cop...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据时间关机
举报原因:
原因补充:

(最多只允许输入30个字)