C语言关机代码

C语言关机代码,第1张

可以通过C语言调用系统命令实现关机。

1、C语言可以通过system函数实现调用系统命令(shell 命令)。

system函数声明于stdlib.h, 形式为

int system(const char *cmd)

功能为执行此弊cmd中的shell指令。

2、在windows中,关机命令为shutdown. 具体说明如图:

更多信息,可以命令行下输入shutdown /?查看。

3、从命陪扒和令说明上可以得知,shutdown /s 即可实现关机效果。

4、参考代码:

#include <stdlib.h>

int main()

{

    system("shutdown /s")//调用关机命令。

    while(1)

}

5、注意事项:

该命令仅用于windows,如果要移植到其它 *** 作系统,则需要适配目标系统的关机命芦盯令,如Linux的halt或shutdown -h。

使用c语言实现手机关机功能是不可能的,因为c语言是一种通用编程语言,它只能用来编写圆誉通用程序,而不能控制手机的硬件。

要想让别人的手机关机,可以通过编写一段代码,将这段代扮派码发送到对方的橘缺段手机,然后让对方手动执行这段代码来实现关机的功能。

在WindowsXP中实现远程关机

在Windows

XP中,新增了一条命令行工具“shutdown”,其作用是“关闭或重新启动本地或远程计算机”。利用它,我们不但可以注销用户,关闭或重新启动计算机,还可以实现定时关机、远程关机。

该命令的语法格式如下:

shutdown

[-i

|-l|-s

|-r

|-a]

[-f]

[-m

[\\ComputerName]]

[-t

xx]

[-c

"message"]

[-d[u][p]:xx:yy]

其中,各参数的含义为:

-i

显示图形界面的对话框。

-l

注销当前用户,这是默认设置。

-m

ComputerName优先。

-s

关闭计算机。

-r

关闭之后重新启动。

-a

中止关闭。除了-l

和ComputerName

外,系统将忽略其它参数。在超时期间,您只可以使用-a。

-f

强制运行要关闭的应用程序。

-m

[\\ComputerName]

指定要关闭的计算机。

-t

xx

将用于系统关闭的定时器设置为

xx

秒。默认值是20秒。

-c

"message"

指定将在“系统关闭”窗口中的“消息”区域显示的消息。最多可以使用127

个字符。引号中必须包含消息。

-d

[u][p]:xx:yy

列出系统关闭的原因代码。

首先,我们来看一下该命令的一些基本用法:

1、注销当前用户

shutdown

-

l

该命令只能注销本机用户,对远程计算机不适用。

2、关闭本地计算机

shutdown

-

s

3、重启本地计算机

shutdown

-

r

4、定时关机

shutdown

-

s

-t

30

指定在30秒之后自动关闭计算机。

5、中止计算机的关闭

有时我们设定了计算机定时关机后,如果出于某种原因祥灶又想取消这次关机 *** 作,就可以用

shutdown

-

a

来中止。如:

shutdown

-s

t

300

设定计算机在5分钟后关闭。

Shutdown

a

取消上述关机 *** 作。

以上是shutdown命令在本机中的一些基本应用。前面我们已经介绍过,该命令除了关闭、重启本地计算机外,更重要的是它还能对远程计算机进行 *** 作,但是如何才能实现呢?

在该命令的格式中,有一个参数[-m

[\\ComputerName],用它可以指定将要关闭或重启的计算机名称,省略的话则默认为对本机 *** 作。您可以用以下命令来试一下:

shutdown

–s

–m

\\sunbird

-t

30

在30秒内关闭计算机名为sunbird的机器;注:sunbird为局域网内一台同样装有Windows

XP的电脑。

但该命令执行后,计算机sunbird一点反应都没有,但屏幕上却提示“Access

is

denied

(拒绝访问)”。

为什么会出现这种情况呢?原来在Windows

XP默认的安全策略中,只有管理员组的用户才有权从远端关闭计算机,而一般情况下我们从局域网内的其他电脑来访问该计算机时,则只有guest用户权限,所以当我们执行上述命令时,便会出现“拒绝访问”的情况。

找到了问题的根源之后,解决的办法也很简单,您只要在客户计算机(能够被远程关闭的计算机,如上述的sunbird)中赋予guest用户远程关机的权限即可。这可利用Windows

XP的“组策略”或“管理工具”中的“本地安全策略”来实现。下面以“组策略”为例进行介绍:

1、单击“开始”按钮,选择“运行”,在对话框中输入“gpedit.msc”,然后单击“确定”,即可打开组策略编辑器。

2、在“组策略”窗口的左侧窗格中逐级展开“计算机配置”→“Windows

设置”→“安全设置”→“本地策略”→“用户权利指派”。

3、在“组策略”窗口的右侧窗格中选择“从远端系统强制关机”,通过双击将其打开。

4、在d出的对话框中显示目前只有“Administrators”组的成员才有权从远程关机;单击对话框下方的“添加用户或组”按钮,然后在新d出的对话框中输入“guest”,再单击“确定”按扭。如图9所示。

5、这时在“从远端系统强制关机”的属性中便添加了一个“guest”用户,单击“确定”即可。

6、关闭“组策略”窗口。

通过上述 *** 作后,我们便给计算机sunbird的guest用户授予了远程关机的权限。以后,倘若您要谨粗扮远程关闭计算机sunbird,只要在网络中其他装有Windows

XP的计算机中输入以下命令即可:

shutdown

-s

–m

\\sunbird

-t

30

(其他参数用凳卖法同上)

图9

这时,在sunbird计算机的屏幕上将显示一个“系统关机”的对话框,提示“系统即将关机。请保存所有正在运行的工作,然后注销。未保存的改动将会丢失。关机是由sunbird\guest初始的。”在对话框下方还有一个计时器,显示离关机还有多少时间。在等待关机的时间里,用户还可以执行其他的任务,如关闭程序、打开文件等,但无法关闭该对话框,除非你用shutdown

–a命令来中止关机任务。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12332783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存