用C++关机

合集下载

system()函数用法

system()函数用法

windows下system () 函数详解windows操作系统下system () 函数详解(主要是在C语言中的应用)函数名: system功能: 发出一个DOS命令用法: int system(char *command); (system函数已经被收录在标准c库中,可以直接调用 ) 程序例:#include <stdlib.h> #include <stdio.h> int main(void) {printf("About to spawn and run a DOS command\n"); system("dir"); return 0; }又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。

而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。

例如,用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。

各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色C=淡红色 D=淡紫色 E=淡黄色 F=亮白色(注意:Microsoft Visual C++ 6.0 支持system)举例看了下面实例,相信你会对学到更多system在C程序设计中的应用。

例一: C语言调用DOS命令实现定时关机: #include<stdio.h> #include<string.h> #include<stdlib.h> int print() {printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n"); printf("╔═══╧╧ C语言关机程序╧╧═══╗\n"); printf("║※1.实现10分钟内的定时关闭计算机║\n"); printf("║※2.立即关闭计算机║\n"); printf("║※3.注销计算机║\n"); printf("║※0.退出系统║\n");printf("╚═══════════════════╝\n"); return 0; } int main() {system("title C语言关机程序");//设置cmd窗口标题 system("mode con cols=48 lines=25");//窗口宽度高度 system("color 0B"); system("date /T"); system("TIME /T"); char cmd[20]="shutdown -s -t "; char t[5]="0"; print(); int c;scanf("%d",&c); getchar(); switch(c) {case 1:printf("您想在多少秒后自动关闭计算机?(0~600)\n"); scanf("%s",t);system(strcat(cmd,t)); break;case 2:system("shutdown -p"); break;case 3:system("shutdown -l"); break; case 0:break;default:printf("Error!\n");}system("pause"); exit(0); return 0; }例二:用C语言删除文件,例如文件的位置是d:\123.txt 用system()函数执行windows 命令。

初中c语言知识点

初中c语言知识点

初中c语言知识点一、知识概述《C语言知识点overview》①基本定义:C语言呢,就是一种计算机编程语言。

就好比盖房子的蓝图一样,你可以通过编写C语言的代码,让计算机按照你的想法去做事,像计算数值、处理数据等,通俗来讲就是你和计算机交流的一种特殊“语言”。

②重要程度:在计算机学科里那可是相当重要的角色啊。

很多底层开发,像操作系统、嵌入式系统啥的都离不开它。

就像盖大楼得有个扎实的地基一样,C语言就是计算机编程世界里的地基部分。

③前置知识:懂一些基本的计算机操作吧,比如说怎么开关机、文件怎么存到磁盘等。

再就是有一定的数学基础,简单的四则运算那是肯定得会的,毕竟代码里摆弄数据是常事。

④应用价值:实际应用场景可多了去了。

比如说开发电子设备里的小软件,如智能手表上看时间统计步数之类功能背后就可能有C语言代码。

还有做游戏编程也是,如果游戏里角色用键盘控制移动啥的,背后的指令可能用C语言来写。

二、知识体系①知识图谱:C语言在编程这个科目里就像大树的根一样,好多高级编程语言像是从它延伸出去的树枝树叶。

很多编程概念都是从C语言这里衍生出来的。

②关联知识:和数据结构、算法联系非常紧密。

好比大厨做菜,C语言是厨具,数据结构就是各种食材的搭配方式,算法就是做菜的步骤或是秘方。

③重难点分析:- 掌握难度:对于初学者有点难,因为语法规则比较严格,而且要对内存的管理有概念,这像在暗室里找东西一样不容易。

- 关键点:语法的准确使用和理解数据类型一定得抠细了,就像拼图碎片,错一块就可能拼不成完整图案。

④考点分析:- 在考试里挺重要的。

不仅计算机编程专业考试会考,就连一些计算机相关职业资格考试也会涉及。

- 考查方式常见的有写代码补充功能、找出代码错误、分析代码运行结果这类的。

三、详细讲解【理论概念类】①概念辨析:- 数据类型:这是C语言里的一个基本概念。

就说数据类型像是不同的盒子,用来装不同类型的东西。

像int类型这个盒子就专门用来装整数的,float类型的盒子是用来装带小数点的数。

C语言写定时关机重启小程序

C语言写定时关机重启小程序
本人计算机专业,主学硬件维修。寒假在家自学C语言,就要开学了,用自己所学的编了一个定时关机,重启的小程序。因为初学,指针方面不能掌握,开学准备自学汇编。
在这里做个广告,自学C语言,多谢有鱼C论坛教学视频的帮助。这里没有其他的意思,只是觉得不错,所以推荐给大家。网址/。
printf("输入时间错误,请重新输入:");
scanf("%d",&minutes);
printf("\n");
}
seconds = minutes * 60; //将输入的分钟转化为秒
itoa(seconds, string_seconds, 10); //将int型转换成string型10代表的十进制
char result[] = "shutdown -r -t 0";
print_top();
scanf("%d",&num);
while( num !=1 && num !=2 )
{
printf("输入序号错误,请重新输入:");
scanf("%d",&num);
}
if ( num == 1 )
{
void print_top();
void print_end();
void judge_num_end(int n);
void main()
{
int num,num_end;
int seconds, minutes;
char string_seconds[5];
char close[] = "shutdown -s -t 0"; //shutdown为系统命令

CC++学习----使用C语言代替cmd命令、cmd命令大全

CC++学习----使用C语言代替cmd命令、cmd命令大全

CC++学习----使⽤C语⾔代替cmd命令、cmd命令⼤全【开发环境】物理机版本:Win 7 旗舰版(64位)IDE版本:Visual Studio 2013简体中⽂旗舰版(cn_visual_studio_ultimate_2013_with_update_4_x86_dvd_5935081_Chinese-Simplified)【前⾔】cmd常⽤命令:calc:启动计算器notepad:打开记事本netstat -a:查看所有的端⼝tasklist:查看所有的进程d: 盘符切换dir(directory) 列出当前⽬录下的⽂件以及⽂件夹md (make directory) 创建⽬录rd (remove directory) 删除⽬录(带内容的⽂件或者⽂件夹不能直接删除,必须先删除⾥⾯,再删除外⾯)。

如果要删除⾮空⽬录,可以使⽤命令:rd /s xxxdir或者rd /s /q xxxdircd (change directory) 改变指定⽬录(进⼊指定⽬录)cd.. 退回到上⼀级⽬录cd\ 退回到根⽬录del (delete) 删除⽂件,删除⼀堆后缀名⼀样的⽂件*.txtexit 退出dos命令⾏cls (clear screen)清屏Win7中打开cmd窗⼝的⽅式:在当前路径下,按住shift键,⿏标右键:⼀、通过C语⾔代码来实现cmd命令⾏功能:这⾥⽤到了c语⾔中的⼀个库:#include<stdlib.h>1、打开记事本:cmd.cpp:#include<stdlib.h>void main() {system("notepad"); //System:执⾏系统的命令⾏}程序⼀运⾏,记事本就打开了:2、查看ip地址:#include<stdlib.h>void main(){system("ipconfig");system("pause"); //如果没有这⼀⾏代码,cmd窗⼝就会闪退}注:如果没有第04⾏的pause,cmd窗⼝就会闪退。

c语言自动关机程序代码

c语言自动关机程序代码

c语言自动关机程序代码
1.#include<stdlib.h>和#include<stdio.h>分别是C标准库文件,分别包含了系统函数和输入输出函数。

2. #include <windows.h> 是Windows API的头文件,包含了系统调用的函数和数据类型。

3. int main() 是程序的入口函数。

4. int delay; 定义了一个整型变量 delay。

5. printf('请输入关机延迟时间(单位:秒):'); 输出提示信息,让用户输入延迟时间。

6. scanf('%d', &delay); 从键盘读入一个整数,存放在变量delay 中。

7. printf('%d秒后将自动关机!', delay); 输出提示信息,告诉用户将在多少秒后关机。

8. Sleep(delay * 1000); 延迟指定的时间,此处单位为毫秒,需要将秒转换为毫秒。

9. system('shutdown -s -t 0'); 调用系统命令,执行关机操作。

其中,-s 表示关机,-t 0 表示立即关机。

10. return 0; 结束程序。

- 1 -。

c语言中控制关机代码

c语言中控制关机代码

C语言中命令如下:
重启
#include <stdlib.h>
main()
{
system("shutdown /r");
}
关机
#include <stdlib.h>
main()
{
system("shutdown /s");
}
XP系统下
else if (!ExitWindowsEx(EWX_POWEROFF, 0))
if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE, 0))
return FALSE;
return TRUE;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \\computername 远程计算机关机/重启动/放弃

关机代码(C语言)

关机代码(C语言)

关机代码(C语言)在计算机编程中,关机代码是一种能够让计算机自动关机的程序。

这种程序通常用于在特定条件下自动关闭计算机,比如在完成某项任务后自动关闭或者在系统出现故障时自动关闭。

在C语言中,编写关机代码并不复杂。

下面我们将介绍如何使用C语言编写一个简单的关机程序。

首先,我们需要包含Windows系统的头文件,因为关机功能是由操作系统提供的。

在C语言中,可以使用windows.h头文件来调用Windows系统的API函数。

接下来,我们需要定义一个主函数main(),在这个函数中我们将调用Windows系统的API函数来实现关机功能。

我们可以使用ExitWindowsEx函数来实现关机功能。

这个函数的原型如下:BOOL ExitWindowsEx(UINT uFlags, DWORD dwReason);其中,uFlags参数用于指定关机的方式,比如立即关机、重启、注销等。

dwReason参数用于指定关机的原因,比如系统故障、应用程序要求等。

下面是一个简单的关机程序的示例代码:```c。

#include <windows.h>。

int main() {。

// 关机。

ExitWindowsEx(EWX_SHUTDOWN, 0);return 0;}。

```。

在这个示例代码中,我们调用ExitWindowsEx函数并传入EWX_SHUTDOWN参数来实现关机功能。

当程序执行到这一行时,计算机将会自动关机。

除了简单的关机功能,我们还可以根据需要编写更复杂的关机程序。

比如可以添加判断条件,只有在特定的条件下才执行关机操作。

或者可以添加日志功能,记录每次关机的原因和时间。

总的来说,使用C语言编写关机代码并不复杂。

只需要了解Windows系统的API函数和C语言的基本语法,就可以轻松实现关机功能。

当然,在实际编写关机程序时,还需要考虑到系统稳定性和安全性等因素,确保关机操作不会对系统造成损害。

在实际应用中,关机代码可以用于自动化任务的执行。

shutdown参数介绍

shutdown参数介绍
用法实例
比如你的电脑要在24:00关机,可以选择“开始→运行”,输入“at 24:00 Shutdown -s”,这样,到了24点,电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入“Shutdown.exe -s -t 7200”,这里表示120分钟后自动关机,“7200”代表120分钟。 如果想取消的话,可以在运行中输入“shutdown -a”。另外输入“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。 让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录System32下 当然你还可以把shutdown与at命配合使用来定时关机,会更加的精确,格式:at 关机时间 shutdown 选项 实例: at 12:45 shutdown -s -t 20 就是让机子在12:45关机,并倒计时20秒。须要注意的是在使用它时须先打开 “Task Scheduler”服务。 Delphi调用此命令时,需要在uses里添加shellapi,并以ShellExecute(Handle,'open','shutdown.exe', ' -s -t 0',nil,SW_HIDE);形式调用就可以了。
让win2003自动重启服务器
第一种方法: 让服务器每周的星期一到星期日的二点钟重起机器:at 02:00 /every:M,T,W,Th,F,S,Su cmd /c shutdown -r -t -60,即每周的每一天也就是每一天了,这样,就可以让服务器在每天的凌晨二点就可以自动重启了。 第二种方法: 第一种方法可能会让服务器重启不了,具体什么原因,我也没有找到,因为计划任务是自动启动,然后后面提示说启动失败。这个原因我不研究了,没有上面那个办法没有用,就用这个方法吧,这个一定管用! 首先在C盘的根目录下去,新建一个文本文件,然后输入:shutdown -r -t 60,保存,重命名为reboot.cmd,然后在控制面板里面打开计划任务,添加计划任务,选择刚才新建的那个文件,然后下一步输入重启的时间,最后一步输入计算机的密码,OK,这样就可以了。

VC关机代码

VC关机代码
end;
VER_PLATFORM_WIN32_WINDOWS:
begin
Result := 'Windows 95/98/98SE/Me ';
end;
end;
end;
=========================================================================================================================}
ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE+EWX_POWEROFF+EWX_FORCEIFHUNG,0);
end else
begin
ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE+EWX_POWEROFF+EWX_FORCEIFHUNG,0);
var osVerInfo: TOSVersionInfo;
begin
Result := ' ';
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege ', tkp.Privileges[0].Luid) then
begin
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
使用:

用C语言编写的关机程序

用C语言编写的关机程序

用c语言编写的关机程序本例定10分钟内关机。

可以自己设定关机时间。

#include<stdio.h>#include<string.h>#include<stdlib.h>void main(){char cmd[20]="shutdown-s-t";char t[5]="0";int c;system("title C语言关机程序");//设置cmd窗口标题system("mode con cols=48lines=25");//窗口宽度高度system("color f0");//可以写成red调出颜色组system("date/T");system("TIME/T");printf("-----------C语言关机程序-----------\n");printf("1.实现10分钟内的定时关闭计算机\n");printf("2.立即关闭计算机\n");printf("3.注销计算机\n");printf("0.退出系统\n");printf("-------------------------------------\n");scanf("%d",&c);switch(c){case1:printf("您想在多少秒后自动关闭计算机?(0~600)\n");scanf("%s",t);system(strcat(cmd,t));break;case2:system("shutdown-p");break;case3:system("shutdown-l");break;case0:break;default:printf("Error!\n"); }system("pause"); return0;}。

ubuntu重启关机命令shutdown终端下ubuntu定时关机命令(转)

ubuntu重启关机命令shutdown终端下ubuntu定时关机命令(转)

ubuntu重启关机命令shutdown终端下ubuntu定时关机命令(转)好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。

shutdown --help可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。

shutdown -h now 现在立即关机shutdown -r now 现在立即重启shutdown -r +3 三分钟后重启shutdown -h +3 "The System will shutdown after 3 minutes" 提示使用者将在三分钟后关机shutdown -r 20:23 在20:23时将重启计算机shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端中断命令执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令kill 程序编码当命令在后台执行时系统会返回一个程序编码,例如:在使用shutdown -r 20:23 & 系统返回系统编码:4905我们可以使用kill 4905来中止重启命令还可以用sudo shutdown -c 来中止关机3ps aux | grep 程序编号我们如果知道程序的编号,我们可以使用ps aux |grep 程序编号来查询该程序编号对应的命令是什么。

sudo shutdown +100 就表示电脑在100分钟后关机。

如果你此时手动关机是没用的,关机和重启都会变成登出,可以用 sudo shutdown -c来取消自动关机的命令。

此外还有其它相关的命令:-k 并不真正关机而只是发出警告信息给所有用户-r 关机后立即重新启动-h 关机后不重新启动-f 快速关机重启动时跳过fsck-n 快速关机不经过init 程序-h 12:00 在12点关机-qP 100 100分钟后退出运行的程序关机上面那条命令测试了一下好像也不是完全退出程序后关机。

WINCC关闭应用程序-退出运行系统并关机

WINCC关闭应用程序-退出运行系统并关机

wincc6.0运行系统下可以用ProgramExecute打开应用程序,但如何关闭呢?使用WinCC的动态向导可以为一个按钮组态退出运行系统并关闭计算机的功能,这样做有一个缺点就是在关机时不做任何提示,如果操作人员误操作,将没有反悔的机会。

我们给出的项目函数ShutOP就具有和Windows关机一样的特性,即在关机之前弹出一个消息框,给操作员最后一次选择的机会。

●使用FindWindow函数获得WinCC运行系统或应用程序的窗口句柄,作为MessageBox函数的参数是为了把弹出的消息框变成WinCC运行系统的子窗体,操作员如果不响应此消息框,将无法进行其它的操作。

这种对话框被Windows称为模式对话框。

●判断操作员是否点击了是按钮,如果点击了是按钮将执行退出运行系统或应用程序的窗口并关闭计算机的操作;如果点击了否按钮将关闭消息框返回。

项目函数ShutOPvoid ShutOP(){HWND hWnd = NULL;int iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES){DMExitWinCCEx (DM_SDMODE_POWEROFF);}}在画面上添加一个关机按钮,在按钮的鼠标单击动作中组态C动作,在C动作中调用项目函数ShutOP()即可。

1,用API函数SendMessage:发送消息去关闭打开的应用程序进程。

(已验证)程序如下:以关闭WINCC应用程序为例#pragma code ("user32.dll")#pragma code()// 前面两句可以省略!HWND hwnd;hwnd = FindWindow(NULL,"WinCC-运行系统 - ");//这句中的“WinCC-运行系统 - ”为应用程序的标题!(如:“XXXX –记事本”"WinCC-Runtime - ")SendMessage(hwnd,WM_CLOSE,0,0);}FindWindow和SendMessage还有哪个最小化窗口的API函数等一些比较常用的函数可以不声明的,wincc直接支持!一些少用的就要声明了!例程{HWND hWnd = NULL;int iRet;hWnd = FindWindow(NULL,"码盘色标- 记事本");iRet=MessageBox(hWnd,"结束监控并关闭","关闭操作窗口",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES ){SendMessage(hWnd,WM_CLOSE,0,0);}}2,这个办法也行。

cpu c状态的正确定义

cpu c状态的正确定义

cpu c状态的正确定义
CPU的C状态可以指代多种不同的状态,如空闲状态、运行状态等。

因此,对于CPU的C状态的具体定义可能需要根据上下文来理解。

在一些场景中,CPU的C状态可能是指处理器的睡眠状态,这种状态通常表示处理器没有执行任何任务。

而在其他场景中,CPU的C状态可能是指处理器的运行状态,表示处理器正在执行任务。

具体来说,CPU的状态通常可以分为运行状态(Running)和空闲状态(Idle)。

运行状态表示处理器正在执行任务,而空闲状态表示处理器没有执行任务,处于等待状态。

在C状态下的具体含义可能需要参考具体的文档、资料或者源代码来实现。

C语言自动售货机代码

C语言自动售货机代码

#include <stdio.h>#include <stdlib.h>#include <string.h>void GetltemName(char *item, FILE *file);int GetltemPrice(FILE *file);void AcceptMoney(int price);//symbolic constant definitions#define CAPACITY 10 //max number itemavailable to vendint main(void){char name[CAPACITY][20]={0};int price[CAPACITY]={0};FILE *stockfile;int i,Nitems,choice;int listend;stockfile=fopen("pricelist.txt","r");if(stockfile==NULL){printf("Error initialising vend:pricelist.txt not opened");}else{//read stock from filelistend=0;Nitems=0;do{price[Nitems]=GetltemPrice(stockfile);GetltemName(name[Nitems],stockfile);if(price[Nitems]>0){Nitems++;}else{listend=1;}}while(Nitems<CAPACITY&&!listend);//print menuprintf("***Menu***\n");for(i=0;i<Nitems;i++){printf("\n%d:%20s:%dp",i,name[i],price[i]);}//request selectionprintf("\n\n");do{printf("Please make your chioce(enter CTRL-C to quit);");scanf("%d",&choice);}while(choice<0||choice>Nitems-1);printf("%s seleted.\n",name[choice]);AcceptMoney(price[choice]);printf("\nEnjoy your %s.\n",name[choice]);}fclose(stockfile);return 0;}void GetltemName(char *item,FILE *file){int len;if(feof(file)){item[0]='\0';}else{fgets(item,20,file);len=strlen(item);if(item[len-1]=='\n'){item[len-1]='\0';}}}void AcceptMoney(int price){int money=0,coin,left;printf("Please pay %d p. 10p,5p,2p,1p accepted. No change given.\n\n",price);do{left=price;printf("Price: %d, paid: %d, to pay: %d,",price,money,left);do{printf("please enter coin:\n");scanf("%d",&coin);}while(coin!=1&&coin!=2&&coin!=5&&coin!=10);money=money+coin;left=price-money;}while(left>0);printf("%d p paid. Thank you.",money);}int GetltemPrice(FILE *file){ int j;if(feof(file)){j='\0';}else{fscanf(file,"%d",&j);}return j;}COMMODITY FILE : pricelist.txt40Mars Bar40Toffee Crisp30Kit Kat25Toblerone40bounty50Topic。

强制关机原理

强制关机原理

强制关机原理
强制关机原理是指在某些紧急情况下,需要立即关闭计算机或其他电子设备的操作。

强制关机的目的是为了保护设备和数据的安全,防止恶意活动或设备故障对系统造成进一步的损害。

强制关机的原理主要涉及到两个方面:硬件和软件。

在硬件方面,强制关机是通过切断设备的电源来实现的。

当用户按下计算机的电源按钮或通过其他物理方式操作设备时,电源管理电路会立即向主板发送关闭信号。

主板接收到关闭信号后,会通过电源供应单元控制电源逐渐关闭,从而使整个系统停止运行。

在软件方面,强制关机可以通过操作系统的命令或快捷键来执行。

当用户在计算机上执行强制关机的操作时,操作系统会向所有正在运行的程序发送关闭信号,并进行系统资源的释放和数据的保存工作。

当完成这些任务后,操作系统会向进程和服务发送终止信号,强制它们停止运行。

最后,操作系统会向计算机的硬件发送关闭指令,进一步切断电源,从而强制关机。

需要注意的是,强制关机是一种紧急操作,可能会导致数据丢失或其他系统问题。

因此,在执行强制关机之前,用户应该尽量保存和备份重要数据,以免发生不可逆的损失。

总之,强制关机的原理是通过硬件和软件两个方面的操作,切断设备的电源和终止运行中的程序,实现设备的立即关闭。

这样可以保护设备和数据的安全,防止进一步的损害。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

April 21, 2010 | tags 自动关机| views 163
Comments 0
2010/04/22 更新
昨天把这个小东西给我一同学用他一上来看都不看,直接输入了个1000时,1000分,竟然也可以定时!哈哈!这个bug太明显了,今天修改了一下,对时间的合法性做了一下检测,改进不大。

新版本下载点我。

新版本及源文件下载点我
========================华丽分割线
=====================================
昨天写了个Java版的定时关机程序,效果倒是挺好的,可以一看任务管理器,好家伙,那么一个小程序,竟然占30几M的内存(因为必须运行在Java虚拟机上),看来用Java 用来写桌面程序还是不行啊。

于是又想着用vc++写一个,以前自学过一段时间的vc++基本处于还没入门的阶段,不过依靠MSDN和Google,跌跌撞撞竟然还写出来了,运行的时候和Java版的比较了一下,天壤之别,运行时2M内存而已。

下面是运行界面:点我下载此工具
这个源代码就没什么好贴的了,VC自动生成了那么多东西,说一下大概思路吧,可以点我下载所有的工程文件
1、自动关机的APi函数
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
DWORD dwVersion;
dwVersion = GetVersion(); // 得到WINDOWS NT或Win32的版本号
if(dwVersion < 0x80000000) // 用于判断WIN系列,从而设置相应的权限{
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
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); ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN, 0);
}
=============================
通过ExitWindowsEx()函数还可实现重启、注销,参见MSDN。

2、关闭计算机线程控制
通过代码
CTime time = CTime::GetCurrentTime();
int nSystemHour = time.GetHour();
int nSystemMinute = time.GetMinute();
获取系统当前时间,并判断是否等于设置关机时间。

3、最小化后隐藏主窗口
::ShowWindow(SW_HIDE); // 隐藏主窗口
原创博文,转载请注明出处:星迹【/】
文章地址:/post/shutdown-pc-vc.html。

相关文档
最新文档