自己写的一个C#版定时关机器
好长时间没写代码了,前几天闲着没事的时候写了一个定时关机器,真的挺有成就感的,哈哈。编译过的程序已经传到网上,大家可以下载试试玩。
http://www.enmay.com/thread-1019-1-1.html
下 面贴出源代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace CMDProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAply_Click(object sender, EventArgs e)
{
int hour = Convert.ToInt32(comboBox1.SelectedItem.ToString());
int minute = Convert.ToInt32(comboBox2.SelectedItem.ToString());
int second = Convert.ToInt32(comboBox3.SelectedItem.ToString());
lblTime.Text = DateTime.Now.AddHours(hour).AddMinutes(minute).AddSeconds(second).ToString("yyyy-MM-dd HH:mm:ss");
btnCancel.Enabled = true;
btnAply.Enabled = false;
timer1.Start();
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i <=12; i++)
{
comboBox1.Items.Add(i);
}
comboBox1.SelectedIndex = 0;
for (int i = 0; i <= 59; i++)
{
comboBox2.Items.Add(i);
}
comboBox2.SelectedIndex = 0;
for (int i = 0; i <= 59; i++)
{
comboBox3.Items.Add(i);
}
comboBox3.SelectedIndex = 0;
}
private void btnCancel_Click(object sender, EventArgs e)
{
btnCancel.Enabled = false;
btnAply.Enabled = true;
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
string method = string.Empty;
if (radioButton1.Checked)
{
method = "-s";
}
else if (radioButton2.Checked)
{
method = "-r";
}
if (DateTime.Now>=Convert.ToDateTime(lblTime.Text.Trim()))
{
timer1.Stop();
Process process = new Process();
process.StartInfo.FileName = "shutdown.exe";
process.StartInfo.UseShellExecute = false;// 不使用Shell来执行,用程序来执行
process.StartInfo.CreateNoWindow = true; // 执行时不创建新窗口
process.StartInfo.Arguments = string.Format("{0} -t 0", method);
process.Start();
}
}
}
}
最后上张运行效果图:
--------------------编程问答-------------------- 上面的那个下载地址错了,现给出正确的。
http://www.enmay.com/thread-1020-1-1.html --------------------编程问答-------------------- 你的成就很虚无,不就是调用一个SHELL关机命令么,用的着写程序这么复杂。
你打开cmd,直接输入一下不就可以了。这些行代码都省下来了。 --------------------编程问答-------------------- 你的成就很虚无。 --------------------编程问答--------------------
不要打击人········ --------------------编程问答-------------------- 自娱自乐 哈哈 --------------------编程问答-------------------- 自娱自乐 --------------------编程问答-------------------- 不用windows api? 不知道在高级的系统如windows 7中是否有效?现在正好需要关机,测试一下看看再说吧. --------------------编程问答-------------------- 呵呵~~支持~lz加油~~ --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 不错,可以实现想要的功能. --------------------编程问答-------------------- 不错,可以实现想要的功能. --------------------编程问答--------------------
首先,我想说纯技术交流帖,并无炫耀的意思,你自己自负,没必要把别人想的和你一样龌龊。其次,我想很多人没有学过计算机的,他们记住了那些命令了吗,office只有这么智能了可还不一样有很多人不会用?存在即合理,这话肯定又它的道理,而且在我之前网上又不是没有定时关机器,照你这么说,那些程序员也没什么成就,也很虚无了。编程就要从最简单的需求做起,是不是觉得这些需求小,没什么大用途就没必要做了呢,那每个程序员初学时打出“Hello World”这个字符串时也是没必要的了。往开了说,现在人们对财务方面的处理基本上都离不开电脑了,照你的说法说开来,人们回到珠算时代,或者回到笔算时代省去买电脑的钱是不是也是最好的。 --------------------编程问答--------------------
谢谢支持,win7下没调试,我换个win7系统实施。 --------------------编程问答--------------------
顶。那些说别人差的,你们舍得分享自己的代码吗?lz提供代码给我们学习,怎么这么不知趣呢?既然你说lz的东西不好,写一个好的出来给大家看看啊。 --------------------编程问答-------------------- 支持一下,共同进步! --------------------编程问答-------------------- 支持一下,共同进步! --------------------编程问答-------------------- shutdown -s -t
此消息通过 【CSDN论坛 Winform测试版】 回复!
龙月.NET的博客 --------------------编程问答-------------------- 八错,写着玩嘛,工作娱乐一体化,呵呵,我就喜欢这种精神 --------------------编程问答--------------------
不要纠结 --------------------编程问答-------------------- 大度一点 --------------------编程问答-------------------- 想写你继续写 没人说不好 --------------------编程问答--------------------
这种人怎么这样 最恶心这种自以为NB 嘲笑别人的人 --------------------编程问答-------------------- 懂得这个原理就好,实际里面还涉及到管道的技术,跨域访问等多种技术。
如果是第三方的,exe,这种做法可能会有些问题。 --------------------编程问答-------------------- 这个程序的描述好像是到点关机,但看winForm又好像是过多长时间关机 ,你到底要描述什么 ?
if (DateTime.Now>=Convert.ToDateTime(lblTime.Text.Trim()))
{
timer1.Stop();
Process process = new Process();
process.StartInfo.FileName = "shutdown.exe";
process.StartInfo.UseShellExecute = false;// 不使用Shell来执行,用程序来执行
process.StartInfo.CreateNoWindow = true; // 执行时不创建新窗口
process.StartInfo.Arguments = string.Format("{0} -t 0", method);
process.Start();
}
--------------------编程问答-------------------- --------------------编程问答-------------------- 需要安装.NET环境不?我是菜鸟 --------------------编程问答-------------------- 是啊,共同学习吗!不要在乎其他人怎么看的!或许他还不如你呢! --------------------编程问答-------------------- 还是要支持一下,别打击人哦 --------------------编程问答-------------------- 要支持一下,好好好 --------------------编程问答-------------------- --------------------编程问答-------------------- 支持一下,学些了 --------------------编程问答--------------------
呵呵,这个命令我当然知道,不是说了吗,写这个程序全当练手玩。 --------------------编程问答--------------------
其实是思路问题,我的目的是过多久之后关机,而逻辑就是当前时间加上你选择的时间得出关机时间,而后再每秒钟对比当前时间是否到达或者超过关机时间,达到或超过就关机。其实这个逻辑有点绕弯了,有更简单的方法,但是当时主要是想看看C#怎么调用系统命令的,所以在这一块就没怎么细究。 --------------------编程问答--------------------
呵呵,我也是菜鸟,共同交流嘛。
.net程序网上说可以脱离.net framework运行,但我没研究,你可以试试。 --------------------编程问答--------------------
补充:.NET技术 , C#