C#编写自动关机程序复习的知识

首先一个程序第一要素是logo
在设置里面可以设置程序图标,在ICON里设置。
ICON图标可以在网上下载。
这些都是表面功夫
程序中涉及到Buton、Label、Timer、Notiflcon控件
Button按钮控件,可以设计点击事件
如下所示:
private void button1_Click(object sender, EventArgs e)
{
// int shi, fen, miao;
if (Flag_True == 0)
{
Flag_True = 1;
}
else
{
button1.Text = "确定";
label6.Text = " ";
label7.Text = " ";
label5.Text = " ";
//label1.Text = "定时关机设置";
Flag_True = 0;
}
shi = (int)numericUpDown3.Value;
fen = (int)numericUpDown2.Value;
miao = (int)numericUpDown1.Value;
time_set = shi * 3600 + fen * 60 + miao;
}
label控件操作简单
能够显示字符,并且其成员有text,可以随时更改文本
timer控件相当于嵌入式中的定时器,在属性中行为一栏中设置ENABLE 并且设置interval时间间隔500就是半秒。
private void timer1_Tick(object sender, EventArgs e)
{
Int32 time_now;
Int32 extra;
if (Flag_True == 1)
{
if (DateTime.Now.Minute == fen && DateTime.Now.Hour == shi && DateTime.Now.Second == miao)
{
button1.Text = "取消";
label6.Text = "剩余关机时间";
label7.Text = "秒";
label5.Text = "0";
System.Diagnostics.Process.Start("shutdown","-s -t 0");//关机程序
}//shutdown
else
{
time_now = DateTime.Now.Second + DateTime.Now.Minute * 60 + DateTime.Now.Hour * 3600;
extra = time_set - time_now;
if (extra > 0)
{
button1.Text = "取消";
label6.Text = "剩余关机时间";
label7.Text = "秒";
//extra/3600
label5.Text = extra.ToString();
}
else
{
Flag_True = 0;
} }
}
}
上面我每隔半秒进入中断一次,判断,如果已经设置过定时关机,就判断是否到达关机时间,并显示还剩多少秒关机。如果没有设置定时关机,就不显示。
其中button1和Label的text都可以随时更改。
基本功能设置完成
接下来还有一个最小化到托盘的设置
用到Notiflcon控件
此控件设置最小化图标,在设置里可以设置icon图标。
他带有的事件有鼠标单击,鼠标双击,单击,双击。
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
this.notifyIcon1.Visible = false;
}
上述我设置了鼠标单击,代码里是恢复可视化,正常窗口。
再之得设置程序最小化时隐藏在下边
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
this.notifyIcon1.Visible = true;
}
}
上述就是一个关机程序,自己做着玩的。。
整体构架如下图所示。
namespace 关机任务管理V1._0
{
public partial class Form1 : Form
{
int shi, fen, miao;
Int32 time_set;
int Flag_True = 0;
public Form1()
{ InitializeComponent(); } private void Form1_Load(object sender, EventArgs e)
{ } private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
if (numericUpDown1.Value == -1)
numericUpDown1.Value = 60;
else if (numericUpDown1.Value == 61)
numericUpDown1.Value = 0;
} private void numericUpDown2_ValueChanged(object sender, EventArgs e)
{
if (numericUpDown2.Value == -1)
numericUpDown2.Value = 60;
else if (numericUpDown2.Value == 61)
numericUpDown2.Value = 0; } private void numericUpDown3_ValueChanged(object sender, EventArgs e)
{
if (numericUpDown3.Value == 25)
numericUpDown3.Value = 0;
else if (numericUpDown3.Value == -1)
numericUpDown3.Value = 24;
} private void button1_Click(object sender, EventArgs e)
{
// int shi, fen, miao;
if (Flag_True == 0)
{
Flag_True = 1;
}
else
{
button1.Text = "确定";
label6.Text = " ";
label7.Text = " ";
label5.Text = " ";
//label1.Text = "定时关机设置";
Flag_True = 0;
}
shi = (int)numericUpDown3.Value;
fen = (int)numericUpDown2.Value;
miao = (int)numericUpDown1.Value;
time_set = shi * 3600 + fen * 60 + miao;
} private void timer1_Tick(object sender, EventArgs e)
{
Int32 time_now;
Int32 extra;
if (Flag_True == 1)
{
if (DateTime.Now.Minute == fen && DateTime.Now.Hour == shi && DateTime.Now.Second == miao)
{
button1.Text = "取消";
label6.Text = "剩余关机时间";
label7.Text = "秒";
label5.Text = "0";
System.Diagnostics.Process.Start("shutdown","-s -t 0");//关机程序
}//shutdown
else
{
time_now = DateTime.Now.Second + DateTime.Now.Minute * 60 + DateTime.Now.Hour * 3600;
extra = time_set - time_now;
if (extra > 0)
{
button1.Text = "取消";
label6.Text = "剩余关机时间";
label7.Text = "秒";
//extra/3600
label5.Text = extra.ToString();
}
else
{
Flag_True = 0;
} }
}
} private void label5_Click(object sender, EventArgs e)
{ } private void label4_Click(object sender, EventArgs e)
{ } private void label3_Click(object sender, EventArgs e)
{ } private void label6_Click(object sender, EventArgs e)
{ } private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
this.notifyIcon1.Visible = false;
}
//最小化代码
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
this.notifyIcon1.Visible = true;
}
}
}
}
界面如下:

C#编写自动关机程序复习的知识的更多相关文章
- 32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数
32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首 ...
- 如何让VS2012编写的程序在XP下运行
Win32主程序需要以下设置 第一步:在工程属性General设置 第二步:在C/C++ Code Generation 设置 第三步:SubSystem 和 Minimum Required Ve ...
- C#入门到精通系列课程——第2章编写C#程序
◆本章内容 (1)熟悉Visual Studio 2017开发环境 (2)编写第一个C#程序 (3)C#程序结构预览 (4)程序编写规范 (5)难点解答 ◆本章简述 要学习C#编程,必然要熟悉C#程序 ...
- Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表
返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...
- CSharpGL(11)用C#直接编写GLSL程序
CSharpGL(11)用C#直接编写GLSL程序 +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharp ...
- 在Linux上编写C#程序
自从C#开源之后,在Linux编写C#程序就成了可能.Mono-project就是开源版本的C#维护项目.在Linux平台上使用的C#开发工具为monodevelop.安装方式如下: 首先需要安装一些 ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- 如何让VS2013编写的程序
总体分c++程序和c#程序 1.c++程序 这个用C++编写的程序可以经过设置后在XP下运行,主要的“平台工具集”里修改就可以. 额外说明:(1)程序必须为Dotnet 4.0及以下版本.(XP只支持 ...
- 编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值
编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值 1 #import <Foundation/Foundation.h> 2 3 int main( ...
随机推荐
- 百度的android采访分析
今天早上10分,我接到一个电话采访百度.当然,我说提前.我的病是多么强烈延迟.所以我也没怎么准备,当然,我也看他们的真实水平的思考.在这次审查中! ! ! ! ! !! .! ! ! !.!! !.! ...
- NDK开发之日志打印
要在NDK中打印日志,只需要以下三步: 一.在Android.mk中添加以下内容: LOCAL_LDLIBS := -lm -llog 或者 LOCAL_LDLIBS:=-L$(SYSROOT)/us ...
- GUI编程笔记(java)06:GUI窗体添加按钮并对按钮添加事件案例
1.需求:把按钮添加到窗体,并对按钮添加一个点击事件. 步骤: (1)创建窗体对象(2)创建按钮对象(3)把按钮添加到窗体(4)窗体显示 2.编写程序思路: 窗体布局:窗体中组件的排列方式 布局分类 ...
- Windows Server 2008中关闭事件跟踪程序的方法
Windows Server 2008跟Windows Server 2003一样,在关机的时候会弹出一个“关闭事件跟踪程序”窗口,当然微软这么做是处于安全的考虑啦,但是如果我们只是个人用用的话,那就 ...
- 正则表达式工具类,正则表达式封装,Java正则表达式
正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...
- Android 5.0 新特性
Material Design Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干 ...
- C语言基础知识小总结(1)
这几天在学习C语言,零零散散的学了十来天,这两天由于家里来了朋友,也没有顾得上写个总结,今天刚把朋友送走,下面就把这十来天的学习情况总结一下,一边在以后好复习与查看. 一.流程控制包括:顺序语句.判断 ...
- C++ 常见问题
1:保证编译后方法名不被修改: The: extern "C" { function declarations here in h file } will disable C++ ...
- T-SQL切割字符串方法小结 2
有表tb, 如下: id value ----------- ----------- 1 aa,bb 2 aaa,bbb,ccc 欲按id,分拆value列, 分拆后结果如下: id value -- ...
- 触发器-Trigger
--触发器的实例: Create Table Student( --学生表 StudentID int primary key, --学号 ...