目的:
最近老是听到用户没有及时登录到eip中审批文件,导致事情延误的事情。细想一下也没办法,基于B/S下的工作流确实没有winform那样方便的提醒功能,虽然里面也有提醒,但也只是在eip打开的情况下才有。于是最近抽出了一点私人时间写了一个类似QQ消息提醒的东西。
技术:
1.webserivce:用于调用远端的工作流的接口
2.GDI+:绘制提醒框的界面。
3.多线程。
4.异步委托。
组件:
1.appconfig辅助类。
2.reg辅助类。用户写注册表。
3.SQL辅助类。访问数据库,用于验证用户身份。
4.第三方控件。
功能:
1.检验当前配置文件中的账号是否有效。
有效就执行提醒。无效就弹出账号设置界面。
2.类似QQ自动提醒。
3.可以设置开机自动运行。
4.密码或账号有误会自动终止并弹出账号设置界面。
图片:
1.账号设置界面
2.配置界面
3.参数配置界面
4.完成界面以及消息提醒界面
底下的小牛托盘便是。
5.运行时相关操作
代码:
由于这个是个小玩具,代码比较简单所以就不提供了,免得贻笑大方,而且网上也可以搜索的到,相关的代码。
这个是画qq消息框的源码。
Code
1protected virtual void drawBorder (Graphics fx)
2 {
3 fx.DrawRectangle (Pens.Silver, 2, 2, Width - 4, ActualHeight - 4);
4 // fx.DrawRectangle(new Pen(new SolidBrush(Color.FromArgb(49,191,239))),2,2,Width-4,16);
5
6 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(51, 94, 168))), 0, 0, Width, 0);
7 fx.FillRectangle(new SolidBrush(Color.FromArgb(59,191,239)),1,1,Width-2,17);
8 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(141, 230, 255))), 0, 16, Width, 16);
9 // Top border
10 //fx.DrawLine (Pens.Silver, 0, 0, Width, 0);
11 //fx.DrawLine (Pens.White, 0, 1, Width, 1);
12 //fx.DrawLine (Pens.DarkGray, 3, 3, Width - 4, 3);
13 //fx.DrawLine (Pens.DimGray, 4, 4, Width - 5, 4);
14 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(51, 94, 168))), 0, 0, 0, ActualHeight);
15 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(59, 191, 239))), 1, 1, 1, ActualHeight);
16 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(141, 230, 255))), 2, 17, 2, ActualHeight);
17 // Left border
18 //fx.DrawLine (Pens.Silver, 0, 0, 0, ActualHeight);
19 //fx.DrawLine (Pens.White, 1, 1, 1, ActualHeight);
20 //fx.DrawLine (Pens.DarkGray, 3, 3, 3, ActualHeight - 4);
21 //fx.DrawLine (Pens.DimGray, 4, 4, 4, ActualHeight - 5);
22 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(51, 94, 168))), 1, ActualHeight - 1, Width - 1, ActualHeight - 1);
23 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(141, 230, 255))), 2, ActualHeight - 2, Width - 2, ActualHeight - 2);
24 /**///// Bottom border
25 //fx.DrawLine (Pens.DarkGray, 1, ActualHeight - 1, Width - 1, ActualHeight - 1);
26 //fx.DrawLine (Pens.White, 3, ActualHeight - 3, Width - 3, ActualHeight - 3);
27 //fx.DrawLine (Pens.Silver, 4, ActualHeight - 4, Width - 4, ActualHeight - 4);
28 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(51, 94, 168))), Width - 1, 1, Width - 1, ActualHeight - 1);
29 fx.DrawLine(new Pen(new SolidBrush(Color.FromArgb(141, 230, 255))), Width - 2, 16, Width - 2, ActualHeight - 2);
30 /**///// Right border
31 //fx.DrawLine (Pens.DarkGray, Width - 1, 1, Width - 1, ActualHeight - 1);
32 //fx.DrawLine (Pens.White, Width - 3, 3, Width - 3, ActualHeight - 3);
33 //fx.DrawLine (Pens.Silver, Width - 4, 4, Width - 4, ActualHeight - 4);
34 }
希望大家批评指正。