学习总结
通过这个项目,学到了很多:
- VS2012的安装及使用,耗费1小时
- VS2012如何引用第三方dll库
- VS2012怎么合并dll库到exe程序中,耗费2小时
- C#的Http网络请求,耗费1天
- 在VS2012中开发Window窗口程序
- C#的委托,接口,命名空间,回调,多线程,
- C#的数据存储:数据库存储,ini键值对存储
- C#的正则表达式
- C#的剪切板操作
- C#实现开启自启
- C#的窗口置顶及不获取焦点及最小化,任务栏隐藏,和 通知栏显示,耗费1天
- C#窗口的移动,平滑移动,贴边隐藏,耗费1天
- C#的焦点问题,耗费1天
- C#的单例运行
- C#制作第三方库
详细讲解
1.VS2012的安装
我是直接安装下图中公众号的讲解安装的,没遇到一点问题,安装环境:Win8.1。这个公众号做得的却不错,值得推荐!
2. VS2012引用第三方库
废话不多说,直接看下方gif最清楚:
3.VS2012怎么合并dll库到exe程序中
参考:https://www.cnblogs.com/mq0036/p/7875843.html
若是显示您的nuget不是最新版,最好更新到最新版,
更新教程:https://www.cnblogs.com/abeam/p/7158179.html
4.C#的Http网络请求
我写了一个Http工具类,当然也是在别人源码基础上写的,修复了其中一些问题,因源码太长,放在这里不合适,可以在下方直接下载工程即可,这里只贴一下测试例子:
public static void test()
{
//测试GET方式,例子:获取google翻译
HttpHelper.getAsync("https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=" + "zh" + "&dt=t&q=" + "good", new HttpGetListener());
//测试POST方式,例子:获取天气
//设置参数
var param = new
{
code = "js",
day = 0,
dfc = 1,
charset = "utf-8"
};
var postData = JsonConvert.SerializeObject(param);
HttpHelper.postAsync("http://php.weather.sina.com.cn/iframe/index/w_cl.php", postData, new HttpPostListener());
}
public class HttpGetListener : HttpHelper.OnHttpListener
{
public void onSuccess(string data)
{
Console.WriteLine("GET请求返回数据:" + data);
JArray jo = (JArray)JsonConvert.DeserializeObject(data);
Console.WriteLine("GET请求解析数据:" + jo[0][0][0].ToString());
}
public void onError(string data)
{
Console.WriteLine("get error:" + data);
}
}
public class HttpPostListener : HttpHelper.OnHttpListener
{
public void onSuccess(string data)
{
Console.WriteLine("POST请求返回数据:" + data);
}
public void onError(string data)
{
Console.WriteLine("post error:" + data);
}
}
5.C#的ini键值对数据存储
ini数据存储的特点就是读写简单,适合存储一些简单类型数据。
同样源码太多,这里只贴出测试例子:
实现在当前目录下创建一个settings.ini文件,并将当前月的天数存储Section为int的time值中。
IniSharedPreferences prefs = new IniSharedPreferences("settings");//创建
IniSharedPreferences.Editor editor = prefs.edit();
editor.putInt("time", DateTime.DaysInMonth(2018, 10));//存储
由于时间问题,今天就先写到这。。。未完待续