C#窗体应用程序--测试插件

本人刚刚接触C#语言,并写了一个专门测试DLL插件的窗体应用程序。本文涉及的内容:

  • 提示窗口
  • 读取、设置文本框的值
  • 中断方法的执行
  • 获取指定路径中的文件
  • 装入控件、获取控件信息、执行控件
  • 获取系统时间
  • 查询所有进程、结束进程

1 开始

1.1 创建项目

文件–》新建–》项目–》Visual C#–>Windows–>Windows窗体应用程序–》确定。

1.2 设计窗口

打开Form1.cs文件,设计窗口的UI(每次调试时,弹出的窗口)。
C#的UI设计比较简单,就是从左侧的“工具箱”中拖出自己想要的控件,接着在右侧的“属性”设置控件。

1.3 实现功能

双击需要添加功能的按钮,自动跳转到Form1.cs文件(PS:1.2 打开的是Form1.cs[设计])并自动创建点击事件,代码如下:

  private void button6_Click(object sender, EventArgs e)
  {

  }

2 功能代码

2.1 提示框

代码:

MessageBox.Show("控件名称不能为空!");

效果图:
这里写图片描述

2.2 读取、设置文本框的值

代码:

string D = DLLName.Text;          //读取
showMsg.Text = str;               //设置

解析:上面DLLName和showMsg是空间的Name

2.3 中断方法的执行

代码:

return

2.4 获取指定路径中的文件

代码:

//获取DLL文件名
        private void button4_Click(object sender, EventArgs e)
        {
            string D="DLL文件名:";
            string str = System.Windows.Forms.Application.StartupPath;//当前路径
            //获取文件夹信息
            DirectoryInfo di = new DirectoryInfo(str);
            FileInfo [] fileInfos=di.GetFiles("*.dll");//获取文件列表
            foreach (FileInfo f in fileInfos)
            {
                D = D + f.Name+"->";
            }
            showMsg.Text = D;
        }

2.5 装入控件、获取控件信息、执行控件

代码:

Assembly MyAssembly = Assembly.LoadFrom(D);   //装入控件
Type[] type = MyAssembly.GetTypes();          //获取全部类型
Type t = MyAssembly.GetType("test.test1");    //获取指定类型
MethodInfo[] methodes = t.GetMethods();       //获取全部方法
MethodInfo m=t.GetMethod("testMethod");       //获取指定方法
object o = Activator.CreateInstance(t);       //创建实例
m.Invoke(o,null);                             //执行控件

解析:
1.GetTypes从控件中获取全部类型,GetType获取一个已知的类型,Type:类型,包含名称空间名和类名等信息。
2.Activator.CreateInstance 方法 (Type) ,使用与指定参数匹配程度最高的构造函数来创建指定类型的实例。

2.6 获取系统时间

代码:

//输出系统时间
        public String outSystemTime()
        {
            String time;
            time=DateTime.Now.ToString("hh:mm:ss");
            return time;
        }

2.7 查询所有进程、结束进程

代码:

 /*查询进程并杀死进程
        * @param name 进程名称
        */
        public String findAndKillProcesse(String name)
        {
            name=name.Trim('[');
            name = name.Trim(']');
            Console.Write("关闭的进程名:" + name+",字符串长度="+name.Length);
            //String name = "notepad.exe";
            Boolean result=false;
            String str = "找不到";
            int i=0;
            //所有进程
            Process[] ps = Process.GetProcesses();
            foreach (Process item in ps)
            {
                i++;
                //Console.Write("进程"+i+"名称:"+item.ProcessName);
                if (item.ProcessName == name||name.Equals(item.ProcessName))
                {
                    Console.Write("找的"+name);
                    str = "找的";
                    //CloseMainWindow是GUI程序的最友好结束方式,相当于用户点击窗体的关闭按钮,或者Alt+F4
                    result=item.CloseMainWindow();
                    if (result == true)
                    {
                        str = "找到,执行成功";
                    }
                    else
                    {
                        str = "找到,执行不成功";
                    }
                    break;
                }
            }
            return str;
        }

参考页面

获取当路径:http://www.cnblogs.com/greatverve/archive/2011/12/15/winform-path.html
获取文件信息:http://www.liangshunet.com/ca/201401/534873537.htm

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值