本人刚刚接触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