用C#设计多功能关机程序

许多软件都有自动关机功能,特别是在长时间下载的时候,这个功能可是使你不用以守候在计算机前面,而电脑却能按照您事先的设定自动关闭。现在我们用visual C#来编写一个多功能的关机程序。该程序具有:定时关机、倒计时关机、关机提醒、系统信息获取等四项功能, 可设定关机时间精确到秒。并且让你很快掌握Visual C#中对API的操作程序。

一.设计关闭Windows窗体

1.界面的设计

新建一个标准工程,向工程中增加一个Windows窗体并向窗体中添加如下控件,并分别设置其属性:

控件名 类别 Text 控件名 类别 Text
CheckBox1 CheckBox 自动关机 GroupBox1 GroupBox 当前系统时间
CheckBox1 CheckBox 倒计时执行操作 GroupBox2 GroupBox 设定时间
CheckBox1 CheckBox 定时报警 TxtTime TextBox  
ButCancle Button 取消 SetupTime DateTimePicker  
ButReOpen Button 重新启动 SetupDate DateTimePicker  
ButClose Button 关机 Timer1 Timer 100
ButSysInto Button 系统信息 ButReLogin Button 注消

Windows窗体界面:

将窗体属性中的caption设置为"关闭windows",名称设置为"frmmain"。

2.在窗体类中引用API函数

API函数是构筑Windows应用程序的基石,是Windows编程的必备利器。每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法,或者是调用Windows API函数的接口,也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。

在Visual C#中调用API的基本过程:

首先,在调用API之前,你必须先导入System.Runtime.InteropServices这个名称空间。该名称空间包含了在Visual C#中调用API的一些必要集合,具体的方法如下:

using System.Runtime.InteropServices ;
using System.Text ;

在导入了名称空间后,我们要声明在程序中所要用到的API函数。我们的程序主要是获取系统的相关信息,所以用到的API函数都是返回系统信息的。先给出在Visual C#中声明API的方法:

[ DllImport("user32") ]
public static extern long SetWindowPos(long hwnd , long hWndInsertAfter, long X , long y , long cx, long cy, long wFlagslong) ;

其中,"DllImport"属性用来从不可控代码中调用一个方法,它指定了DLL的位置,该DLL中包含调用的外部方法;"kernel32"设定了类库名;"public"指明函数的访问类型为公有的;"static"修饰符声明一个静态元素,而该元素属于类型本身而不是指定的对象;"extern"表示该方法将在工程外部执行,同时使用DllImport导入的方法必须使用"extern"修饰符;最后GetWindowsDirectory函数包含了两个参数,一个为StringBuilder类型的,另一个为int类型的,该方法返回的内容存在于StringBuilder类型的参数中。同时,因为我们在这里使用到了StringBuilder类,所以在程序的开始处,我们还得添加System.Text这个名称空间,方法同上。

声明其它的在程序中所要用到的API函数:

[ DllImport("user32") ]
public static extern long ExitWindowsEx(long uFlags, long dwReserved ) ;
[ DllImport("shell32") ]
public static extern long ShellAbout(long uFlags, long dwReserved ) ;

3.增加窗体类的变量

long dwReserved ;
const int SHUTDOWN = 1 ;
const int REBOOT = 2 ;
const int LOGOFF = 0 ;
long sh ;
int counter , n ;

4.编写窗体类的方法

在窗体的Load(事件过程中编写如下代码:

private void frmmain1_Load(object sender, System.EventArgs e )
{
file://用系统时间初始化组件
Time.Text = System.DateTime.Today.ToShortDateString( ) + " "+ System.DateTime.Today.ToLongTimeString( ) ;
}
  在组件Timer1的OnTimer事件过程中编写如下代码:
/ / 在组件Timer1的OnTimer事件过程中编写如下代码:
private void Timer1_Timer(object sender, System.EventArgs e )
{
file://接收当前日期和时间,用于即时显示
string CurrDate=System.DateTime.Today.ToShortDateString( ) ;
string CurrTime=System.DateTime.Today.ToShortTimeString( ) ;
file://随时检测设定的关机日期和时间是否有效
if( this.CheckBox1.Checked == true )
{
if(CurrDate== SetupDate.ToString( ) && CurrTime==SetupTime.ToString( ) )
ColseComputer( ) ;
}
}
private void ColseComputer( )
{ sh = ExitWindowsEx(SHUTDOWN, dwReserved) ; }
private void button1_Click(object sender, System.EventArgs e )
{
Form2 frm=new Form2( ) ;
frm.Show( ) ;
}
private void ButReOpen_Click(object sender, System.EventArgs e )
{ sh = ExitWindowsEx(REBOOT, dwReserved) ; }
private void ButReLogin_Click(object sender, System.EventArgs e )
{ sh = ExitWindowsEx(LOGOFF, dwReserved) ; }
private void ButCancle_Click(object sender, System.EventArgs e )
{ this.Close( ) ; }
private void ButClose_Click_1(object sender, System.EventArgs e )
{ sh = ExitWindowsEx(REBOOT, dwReserved) ; }

时间: 2024-08-31 11:42:47

用C#设计多功能关机程序的相关文章

Visual C#设计多功能关机程序

visual|程序|设计 许多软件都有自动关机功能,特别是在长时间下载的时候,这个功能可是使你不用以守候在计算机前面,而电脑却能按照您事先的设定自动关闭.现在我们用visual C#来编写一个多功能的关机程序.该程序具有:定时关机.倒计时关机.关机提醒.系统信息获取等四项功能, 可设定关机时间精确到秒.并且让你很快掌握Visual C#中对API的操作程序. 一. 设计关闭Windows窗体 1. 界面的设计 新建一个标准工程,向工程中增加一个Windows窗体并向窗体中添加如下控件,并分别设置

谁可以帮我设计一个类似于通讯录功能的程序?

问题描述 谁可以帮我设计一个类似于通讯录功能的程序? 这个程序只需要有3栏,姓名,号码,还有账号,输入姓名,它可以自己根据字母顺序排好,像手机通讯录那样自己排序,输入姓名,就可以查到后面的信息. 解决方案 有人帮忙设计一下吗?我可以出一些费用 解决方案二: 是设计还是开发?这个是不一样的..你想做的是Android APP吧?

C语言编写简单的定时关机程序_C 语言

写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机. 这里主要考察system()命令. 代码实现: #include<stdio.h> #include<string.h> #include<stdlib.h> int main() { char cmd[20]="shutdown -s -t "; char t[5]="0"; int c; system("title C语言关机程序")

《Android应用开发攻略》——第2章 设计成功的应用程序 2.1 导言:设计成功的Android应用程序

第2章 设计成功的应用程序 2.1 导言:设计成功的Android应用程序 Colin Wilcox 讨论 本章介绍编写富于想象力而且实用的Android应用的设计指导思想.有几个攻略描述了成功设计的具体特征.本节将列出其他一些方面. 这一章的目的之一是解释相对于其他在移动设备上交付丰富内容的方法,原生Java Android应用程序开发的好处. 原生手机应用程序的要求 不管在何种平台上部署,成功交付任何手机应用程序都有许多关键的要求: 应用程序应该易于在设备上安装.删除和更新. 应该以引人入胜

不走寻常路 设计ASP.NET应用程序的七大绝招

asp.net|程序|设计 不走寻常路 设计ASP.NET应用程序的七大绝招 随着微软.NET的流行,ASP.NET越来越为广大开发人员所接受.作为ASP.NET的开发人员,我们不仅需要掌握其基本的原理,更要多多实践,从实践中获取真正的开发本领.在我们的实际开发中,往往基本的原理满足不了开发需求,我们更多的要积累一些开发技巧,本文就向大家介绍一些实用技巧,希望对大家的开发有所裨益. 1. ~ 的用法 一般的情况下,我们是使用./../ 这样的相对路径来确定和规划我们的资源(比如图片.资源文件),

C#设计的一个向导程序(Wizard)框架

程序|设计 在现实的软件中,经常可以看到一些向导(Wizard)的存在,如何给自己的应用程序实现一个向导呢?下面给出一个使用面向对象的思想设计出来的应用程序向导框架,虽然很简单,但希望能给人帮助.  其中有三个比较关键的类,一个是向导窗体要收集的信息封装成的类Information,一个是所有向导窗体都要继承的窗体基类frmBase,还有一个就是最关键的类,向导控制类WizardController. 有了基类frmBase,设计一个子类窗体非常简单,只需从frmBase类中派生一个新窗体,设计

phonegap-phoneGap开发,拍照功能,程序闪退

问题描述 phoneGap开发,拍照功能,程序闪退 phoneGap开发,拍照功能,程序闪退,拍照完成 返回的时候闪退还有就是有的手机裁切也会报错 解决方案 首先,你这个需要明确你的程序是否是在Android里,如果是Android,logcat会显示出报错的位置,这种情况通常会是权限导致.若是跑在ios上,抱歉,我暂时无法解答.

以备万一:创建数据中心关机程序

一份数据中心关机检查表能够帮助IT团队在关闭电源和损失全部有价值数据之前,集中进行备份.测试以及系统验证等事项. 尽管策略和流程是现代IT的关键,但每当需求提升时,数据中心管理员往往来不及关闭设备.需求就像接近中的暴风雨那样富有戏剧性,也可能市政电网升级那样司空见惯. 但是,企业准备和响应设施关闭的方法可以鼓励或避免成本上的灾难. 一份精心构思和经过测试的数据中心关机程序在业务连续性规划中起着至关重要的作用.它定义了迁移或关闭应用程序.保护有价值的数据.关闭物理系统的最佳流程,然后晚些时候再成功

python实现的重启关机程序实例_python

本文实例讲述了Python实现的重启关机程序的方法,对Python程序设计有一定的参考价值.具体方法如下: 实例代码如下: #!/usr/bin/python #coding=utf-8 import time from os import system runing = True while runing: input = raw_input('关机(s)OR重启(r)?(q退出)') input = input.lower() if input == 'q' or input =='quit