当前位置:首页 » 编程软件 » 编程之关机

编程之关机

发布时间: 2023-05-27 06:45:04

❶ 如何用C# 实现远程关机呢

两种方法,一种是服务端开一个web service端口及实现关机注销等的函数,或封装一个关机注销等的类使用.net remoting。这样客户端直接通过访问服务端的这个远程函数或远程对象,就可以实现关机注销。另一种是通过windows远程关机的dos(cmd)命令,来实现这个功能,即使用 http://topic.csdn.net/t/20050620/07/4093050.html 上所说的方法。创建一个Process,第一种是游简在服务端创建,第二种是客户端创建,一样的使用process和shutdown命令。
创建cmd进程,并运行命令。方法如下类似

Process commandProcess = new Process();
try
{
commandProcess.StartInfo.FileName = "cmd.exe";

commandProcess.StartInfo.UseShellExecute = false;
commandProcess.StartInfo.CreateNoWindow = true;
commandProcess.StartInfo.RedirectStandardError = true;
commandProcess.StartInfo.RedirectStandardInput = true;
commandProcess.StartInfo.RedirectStandardOutput = true;

if (commandProcess.Start()) { }

commandProcess.StandardInput.WriteLine(string.Format("shutdown /?"));
commandProcess.StandardInput.WriteLine("exit");

for (; !commandProcess.HasExited; )//等待cmd命令运行皮告完神握裤毕
{
System.Threading.Thread.Sleep(1);
}
//错误输出
string tmpout = commandProcess.StandardError.ReadToEnd();
string tmpout1 = commandProcess.StandardOutput.ReadToEnd();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
if (commandProcess != null)
{
commandProcess.Dispose();
commandProcess = null;
}
}

❷ 利用java编程,控制计算机关机

哈哈,这个我正好可以闷悔帮你,以前写了类似程序
开机运行:String regKey = "蚂梁正HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
String myAppName = "DaKa";
try {
Runtime.getRuntime().exec("reg " + (isStart ? "add " : "delete ") + regKey + " "
+ myAppName + (isStart ? " /t reg_sz /d " + dirpath : " /f"渣陵));
dirpath是你当前文件的绝对路径(包括文件名)

关机:Runtime.getRuntime().exec("shutdown -s -f -t 10");

❸ C语言高手。可以帮我制作一个在电脑上可以定时开关机子的C语言编程简单点就好的,拜托了。

在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 C t 300 设定计算机在5分钟后关闭。
Shutdown C a 取消上述关机操作。

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

在该命令的格式中,有一个参数[-m [\\ComputerName],用它可以指定将要关闭或重启的计算机名称,省略的话则默认为对本机操作。于是,我用以下命令试了一下:

shutdown Cs Cm \\netproxy -t 30

(在30秒内关闭计算机名为netproxy的机器;注:netproxy为局域网内一台同样装有Windows XP的电脑)

但该命令执行后,计算机netproxy一点反应都没有,我的屏幕上却返回这样一句话:Access is denied (拒绝访问)。

为什么会出现这种情况呢?我想了半天,四处查找有关的资料,终于发现,在Windows XP默认的安全策略中,只有管理员组的用户才有权从远端关闭计算机,而一般情况下我们从局域网内的其他电脑来访问该计算机时,则只有guest用户权限,所以当我们执行上述命令时,便会出现“拒绝访问”的情况。

找到问题的根源之后,解决的办法也很简单,只要在客户计算机(能够被远程关闭的计算机,如上述的netproxy)中赋予guest用户远程关机的权限即可。这可利用Windows XP的“组策略”或“管理工具”中的“本地安全策略”来实现。下面以“组策略”为例进行介绍:

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

2、在“组策略”窗口的左窗格中打开“计算机配置”—“Windows 设置”—“安全设置”—“本地策略”—“用户权利指派”。(如图)

3、在“组策略”窗口的右窗格中选择“Force shutdown from a remote system (从远端系统强制关机)”,双击。

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

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

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

通过上述操作后,我们便给计算机netproxy的guest用户授予了远程关机的权限。以后,我们要远程关闭计算机netproxy,只要在网络中其他装有Windows XP 的电脑中输入以下命令即可:

shutdown -s Cm \\netproxy -t 30 (其他参数用法同上)

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

最后,有一点要说明的是,shutdown命令不但可以远程关闭装有Windows XP系统的计算机,它还可以远程关闭装有 Windows 2000系统的计算机(对于Win9X嘛,好像不适用)。有关Windows 2000客户计算机上的一些设置,操作方法同上,这里就不再多说了。

另外shutdown作为一个外部命令(其对应文件为\Windows\system32文件夹下的shutdown.exe),我们还可将它复制到Windows 2000的机器上,这样,在装有Windows 2000系统的机器之间便也能相互实现远程关机。

❹ 电脑编程控制自动关机

在不指定编程语言的情况下,使用系统自带的命令行支持是最为便捷的。
以目前野陆主流的windows操作系统为例,自带的命令行为dos命令,脚本被称为批处理文件,弯脊局其扩展名为.bat。
要实现自动关机,需要在批处理文件中写入命令
shutdown -s -t 100
其中-t后的100是关机时间,即当前时间后100秒执行关机。
如果要马上关机,只需要埋让改成
shutdown -s -t 0
即可。

要让电脑在指定时间关机,可以增加at。如令电脑在17:20关机,那么在批处理写入
at 17:20:00 shutdown -s -t 0

批处理的建立:
1 在需要建立批处理文件的位置,右键选择新建->文本文档;
2 将新建出的文本文档(默认扩展名为txt),修改为需要的文件名.bat。

批处理的编辑:
不可以直接双击打开,而是要用右键点击,选择打开方式为记事本。或者右键->编辑。

批处理的运行:
双击批处理文件即可直接运行。

❺ C#编程关机程序不让windows提醒

你如果使用命令
“shutdown -s -t xxxx” 这种做法 是一定会出现这个对话慎察框的,
这是window的安全策略,不可能在用户毫不知烂孝迟情的情况下执行计划任务。

如果希望定时关机而不告知用户,
必须使用 shutdown -f (立即强制关机);

给你的解决方案就是,把定时的功能放在你程序的内部,使用Timer 控件来处理定时,
时饥李间到了之后,Timer触发cmd的“shutdown -f” 事件, 这样就可以没有提示的实现定时关机功能了,(迅雷就是这么做的)
如果定时的程序有可能被关闭,希望程序关闭后依然有定时关机的效果的话,可以再写一个
Windows服务, 开始程序时直接跑起来Windows服务,这样哪怕用户把你这个小程序关了,
该几点关机还是会几点关机的。

❻ 自动关机的编程是怎么写的,如果解除自动关机,又怎么办

Shell
"cmd.exe
/c
shutdown
-s
-t
0"
若要重枣凳启,把
-s
改为
-r
不加
-f
,vbHide也派皮可以省去,-t
后的数字最好不要是0,以保证在关机前可以用代码
Shell
"cmd.exe
/c
shutdown
-a"
取消关机凳羡旅

❼ 电脑编程控制自动关机

最简单的:
编写一个批处理如下
@shutdown -s -t 20
保存孝段为sd.bat,然后放到windows的“控制面板”-“任务计划”里面,自己设计时间点。
-t 后面的20s是为了留20秒时间来保存。

编写后陪森台的也行,就是写一循环反复查询系统时间,一旦到达23点就关机;当然可以优化,根据现在的时间让线程sleep一段时间。也就是比如说现在是21点,你可以让线程sleep1个多小时,然后再查询,再调整sleep时间。具体代芦慎亩码不写了,用第一种方法就行。

❽ 谁知道怎样用VB编程序关机

分类: 电脑/网络 >> 程序设计 >> 其他编程语言敏芦
问题描述:

shell "shutdown -s -t"的方法不是很好,有没有什么正常一点的?谢谢……

解析:

'晕!我刚刚才巧歼做了一个,把代桥宽带码给你。(怎么这么巧啊?)

'你需要画一个timer,名字叫timer1,然后把代码复制就可以了。

Option Explicit

Private Const EWX_LogOff As Long = 0

Private Const EWX_SHUTDOWN As Long = 1

Private Const EWX_REBOOT As Long = 2

Private Const EWX_FORCE As Long = 4

Private Const EWX_POWEROFF As Long = 8

'The ExitWindowsEx function either logs off, shuts down, or shuts

'down and restarts the system.

Private Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

'The GetLastError function returns the calling thread's last-error

'code value. The last-error code is maintained on a per-thread basis.

'Multiple threads do not overwrite each other's last-error code.

Private Declare Function GetLastError Lib "kernel32" () As Long

Private Type LUID

UsedPart As Long

IgnoredForNowHigh32BitPart As Long

End Type

Private Type LUID_AND_ATTRIBUTES

TheLuid As LUID

Attributes As Long

End Type

Private Type TOKEN_PRIVILEGES

PrivilegeCount As Long

TheLuid As LUID

Attributes As Long

End Type

'The GetCurrentProcess function returns a pseudohandle for the

'current process.

Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

'The OpenProcessToken function opens the access token associated with

'a process.

Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, _

ByVal DesiredAccess As Long, TokenHandle As Long) As Long

'The LookupPrivilegeValue function retrieves the locally unique

'identifier (LUID) used on a specified system to locally represent

'the specified privilege name.

Private Declare Function LookupPrivilegeValue Lib "advapi32" _

Alias "LookupPrivilegeValueA" _

(ByVal lpSystemName As String, _

ByVal lpName As String, _

lpLuid As LUID) As Long

'The AdjustTokenPrivileges function enables or disables privileges

'in the specified access token. Enabling or disabling privileges

'in an access token requires TOKEN_ADJUST_PRIVILEGES access.

Private Declare Function AdjustTokenPrivileges Lib "advapi32" _

(ByVal TokenHandle As Long, _

ByVal DisableAllPrivileges As Long, _

NewState As TOKEN_PRIVILEGES, _

ByVal BufferLength As Long, _

PreviousState As TOKEN_PRIVILEGES, _

ReturnLength As Long) As Long

Private Declare Sub SetLastError Lib "kernel32" _

(ByVal dwErrCode As Long)

Private Const mlngWindows95 = 0

Private Const mlngWindowsNT = 1

Public glngWhichWindows32 As Long

'The GetVersion function returns the operating system in use.

Private Declare Function GetVersion Lib "kernel32" () As Long

Private Sub AdjustToken()

'********************************************************************

'* This procere sets the proper privileges to allow a log off or a

'* shut down to occur under Windows NT.

'********************************************************************

Const TOKEN_ADJUST_PRIVILEGES = &H20

Const TOKEN_QUERY = &H8

Const SE_PRIVILEGE_ENABLED = &H2

Dim hdlProcessHandle As Long

Dim hdlTokenHandle As Long

Dim tmpLuid As LUID

Dim tkp As TOKEN_PRIVILEGES

Dim tkpNewButIgnored As TOKEN_PRIVILEGES

Dim lBufferNeeded As Long

'Set the error code of the last thread to zero using the

'SetLast Error function. Do this so that the GetLastError

'function does not return a value other than zero for no

'apparent reason.

SetLastError 0

'Use the GetCurrentProcess function to set the hdlProcessHandle

'variable.

hdlProcessHandle = GetCurrentProcess()

OpenProcessToken hdlProcessHandle, _

(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), _

hdlTokenHandle

'Get the LUID for shutdown privilege

LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid

tkp.PrivilegeCount = 1 ' One privilege to set

tkp.TheLuid = tmpLuid

tkp.Attributes = SE_PRIVILEGE_ENABLED

'Enable the shutdown privilege in the access token of this process

AdjustTokenPrivileges hdlTokenHandle, _

False, _

tkp, _

Len(tkpNewButIgnored), _

tkpNewButIgnored, _

lBufferNeeded

End Sub

Private Sub Form_Load()

'********************************************************************

'* When the project starts, check the operating system used by

'* calling the GetVersion function.

'********************************************************************

Dim lngVersion As Long

lngVersion = GetVersion()

If ((lngVersion And &H***********) = 0) Then

glngWhichWindows32 = mlngWindowsNT

Else

glngWhichWindows32 = mlngWindows95

End If

End Sub

Private Sub Timer1_Timer()

V = MsgBox("确认要关机吗?", vbYesNo + vbQuestion, "???")

If V = vbYes Then

If glngWhichWindows32 = mlngWindowsNT Then

AdjustToken

End If

ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_POWEROFF), 0

End If

End Sub

❾ 如何编程实现快速关机

关机其实不是很麻烦的一件事,但是代码量不小。

总的来说,编程实现关机大多是调用Win32 API函数ExitWindows或ExitWindowsEx这两个函数实现的。

如果在以前的98系统里,一句简单的ExitWindows()就可以了,连参数都没有,可是如果是在NT系列机里就要困难很多,因为盖茨先生为了安全考虑加入了权限这种东西。想要关机就先要获取关机需要的权限。

获取权限的方法是调用AdjustTokenPrivileges函数取得SE_SHUTDOWN_NAME权限,有了这个权限才可以顺利地关机,不然就会返回失败。

我不知道你擅长哪种语言,所以暂时没有给出例程。

总的思想方法是先用OpenProcessToken()和GetCurrentProcess()函数配合获得当前进程的访问令牌,然后使用LookupPrivilegeValue()函数查询关机权限的本地唯一标识符(LUID),再使用AdjustTokenPrivileges函数获得关机权限,最后调用ExitWindowsEx函数关机。这几个步骤地顺序不能弄反,否则就会出错。如果想保证程序的兼容性,还应该在开始前用GetVersionEx函数获得当前的操作系统,保证获取关机权限的代码只有当系统是NT内核时才运行。

如果你觉得这个方法麻烦,其实也可以用ShellExecute函数直接调用Shutdown.exe程序关机,很多小的关机程序也是这样写的。

❿ 编程自动关机代码。。。。。

比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at 22:00 Shutdown -s”,
这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工
作。如果你想以倒计时的方式关机,可以输入“Shutdown.exe -s -t 3600”,这里表示60
分钟后自动关机,“3600”代表60分钟。

设置好自动关机后,如果想取消的话,可以在运行中输入“shutdown -a”。另外输入
“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。

Shutdown.exe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如
“-s”就表示关闭本地计算机,“-a”表示取消关机操作,下面列出了更多参数,大家
可以在Shutdown.exe中按需使用。

-f:强行关闭应用程序

-m \\计算机名:控制远程计算机

-i:显示图形用户界面,但必须是Shutdown的第一个选项

-l:注销当前用户

-r:关机并重启

-t 时间:设置关机倒计时

-c "消息内容":输入关机对话框中的消息内容(不能超127个字符)

有时候,我们需要定时关闭计算机,下面介绍一个在Windows XP下实现定时关机的简单方
法。

指定系统在22分钟后自动关闭:点击“开始→运行”,在“打开”中输入命令“Shutdown
-s -t 1320”(注意:引号不输入,参数之间有空格,1320的单位是秒),单击“确定”
按钮即可。

指定系统在某个时间(比如12:00)自动关闭:在“打开”中输入命令
“at 12:00 Shutdown -s”即可。

取消定时关机:在“打开”中输入命令“Shutdown -a”即可。

热点内容
eclipseandroid运行 发布:2025-02-14 00:54:57 浏览:897
云服务器安全策略 发布:2025-02-14 00:54:07 浏览:289
小米手机如何更改账号密码 发布:2025-02-14 00:48:48 浏览:572
我的世界如何导出服务器 发布:2025-02-14 00:48:39 浏览:722
工业服务器机箱怎么样 发布:2025-02-14 00:29:15 浏览:86
英朗压缩机 发布:2025-02-14 00:29:12 浏览:678
java门面模式 发布:2025-02-14 00:29:09 浏览:917
java旋转 发布:2025-02-14 00:22:49 浏览:104
存储虚拟化方案 发布:2025-02-14 00:21:15 浏览:696
ubuntupython3安装 发布:2025-02-14 00:14:45 浏览:662