简单实用的跨库数据同步工具FDataX
简单实用的跨库数据同步工具FDataX, 支持多并发自动分片,事务, 实时自定义,状态可视
selenium打印对话框操作函数
通过此函数识别打印对话框“打印”按钮的位置,再通过 pyautogui.click(x,y)模拟点击即可操作打印对话框
C# 绘制Code128 auto条码
不到200行代码,实用的绘制Code128 auto条码程序,Code128 auto采用 A、B、C混合编码,将条码长度压缩到最短
c#斑马打印机类
斑马打印机资料很少且不全,通过分析ZebraDesigner的输出及Zebra多平台SDK的部分代码,完成Zebra C#打印的封装类,通过打印印驱动输出ZPL进行打印,汉字采用点阵数据打印的方式完成。
Java仿.NET 的DateTime封装
Java或jdbc操作日期时间存在诸多不便,代码通过对Date、Calendar、SimpleDateFormat的封装,实现类似.NET DateTime的功能
模拟键盘鼠标发飞信短信
模拟键盘鼠标操作飞信界面发送短信
private void SendSMS()
{
#if DEBUG
string[] addr = new string[] { "闻佃来"};
#else
string[] addr = new string[] { "张三", "李四"};
#endif
string message = " ";
if (message == "")
return;
Rectangle rect = new Rectangle();
Windows wins = new Windows();
IntPtr hwin = IntPtr.Zero;
foreach (Window w in wins)
{
if (w.Title.IndexOf("发短信") >= 0)
{
hwin = w.hWnd;
break;
}
}
//未找到发送窗口,点击主窗口下的短信发送按钮
if (hwin == IntPtr.Zero)
{
wins = new Windows();
foreach (Window w in wins)
{
if (w.Title.IndexOf("飞信2013") >= 0)
{
//唤醒屏保
Win32.SetCursorPos(10,10);
Win32.mouse_event(Win32.MOUSEEVENTF_MOVE, 50, 50, 0, 0);
Thread.Sleep(1500);
Win32.ShowWindow(w.hWnd, Win32.SW_SHOWNORMAL);
Win32.SetForegroundWindow(hwin);
Win32.GetWindowRect(w.hWnd, ref rect);
IntPtr hDesk = Win32.GetDesktopWindow();
Rectangle rdesk = new Rectangle();
Win32.GetWindowRect(hDesk,ref rdesk);
if (rect.Y < 0)
{
//上
Win32.SetCursorPos(rect.X +(rect.Width-rect.X)/2,0);
Win32.mouse_event(Win32.MOUSEEVENTF_MOVE, 0, 1, 0, 0);
Thread.Sleep(1500);
Win32.GetWindowRect(w.hWnd, ref rect);
}
else if (rect.Y >= rdesk.Height - 3)
{
//下
Win32.SetCursorPos(rect.X + (rect.Width - rect.X) / 2,rdesk.Height);
Win32.mouse_event(Win32.MOUSEEVENTF_MOVE, 0, -1, 0, 0);
Thread.Sleep(1500);
Win32.GetWindowRect(w.hWnd, ref rect);
}
else if (rect.X <= 0)
{
//左边
Win32.SetCursorPos(0, rect.Y + (rect.Height - rect.Y) / 2);
Thread.Sleep(2000);
Win32.mouse_event(Win32.MOUSEEVENTF_MOVE, 1, 0, 0, 0);
Thread.Sleep(1500);
Win32.GetWindowRect(w.hWnd, ref rect);
}
else if (rect.X >= rdesk.Width - 3)
{
//右边
Win32.SetCursorPos(rdesk.Width, rect.Y + (rect.Height - rect.Y) / 2);
Thread.Sleep(2000);
Win32.mouse_event(Win32.MOUSEEVENTF_MOVE, -1, 0, 0, 0);
Thread.Sleep(1500);
Win32.GetWindowRect(w.hWnd, ref rect);
}else
{
Win32.MoveWindow(w.hWnd, rect.Left, 0, rect.Width - rect.Left, rect.Height - rect.Top, true);
Win32.GetWindowRect(w.hWnd, ref rect);
Thread.Sleep(300);
}
Win32.SetCursorPos(rect.X+70,rect.Height-50);
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN | Win32.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Thread.Sleep(2000);
break;
}
}
//再次查找发送窗口
wins = new Windows();
foreach (Window w in wins)
{
if (w.Title.IndexOf("发短信") >= 0)
{
hwin = w.hWnd;
break;
}
}
}
//查询发送窗口成功
if (hwin != IntPtr.Zero)
{
Win32.ShowWindow(hwin, Win32.SW_SHOWNORMAL);
Win32.SetForegroundWindow(hwin);
Win32.GetWindowRect(hwin, ref rect);
IntPtr hwndtel = Win32.WindowFromPoint(rect.Left + 120, rect.Top + 45);
IntPtr hwndsend = Win32.WindowFromPoint(rect.Left + 50, rect.Height - 60);
//单击地址栏
Win32.SetCursorPos(rect.Left + 120, rect.Top + 45);
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN | Win32.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Thread.Sleep(1000);
//加入地址
for (int i = 0; i < addr.Length; i++)
{
Clipboard.SetText(addr[i]);
Thread.Sleep(200);
Win32.SendMessage(hwndtel, Win32.WM_PASTE, 0, 0);
Thread.Sleep(300);
Win32.SendMessage(hwndtel, Win32.WM_KEYDOWN, 0X0D, 0);//发
Win32.SendMessage(hwndtel, Win32.WM_KEYUP, 0X0D, 0); //送
Win32.SendMessage(hwndtel, Win32.WM_CHAR, 0X0D, 0); //回车
Thread.Sleep(300);
}
//加入消息文本
Clipboard.SetText(message);
Thread.Sleep(200);
Win32.SendMessage(hwndsend, Win32.WM_PASTE, 0, 0);
Thread.Sleep(200);
#if DEBUG
#else
if (!_TestMode)
{
Win32.SendMessage(hwndsend, Win32.WM_KEYDOWN, 0X0D, 0);
Win32.SendMessage(hwndsend, Win32.WM_KEYUP, 0X0D, 0);
Win32.SendMessage(hwndsend, Win32.WM_CHAR, 0X0D, 0);
}
#endif
textBox1.AppendText("---------------------------------------- \n");
textBox1.AppendText(DateTime.Now + ":"+ message + "\n");
}
else
{
textBox1.AppendText("无法打开飞信短信发送窗口\n");
}
_LastSend = DateTime.Now;
LastSendTime = _LastSend;
}
RouterOS免脚本多线ADSL负载均衡
请下载http://download.csdn.net/source/2706681
图片大小批量调整工具
用于批量调整图片大小,特别是像机拍的照片想批量变成上传的小图的情况,需在.net 2.0以上环境运行
Ftp备份拷贝,主要用于数据库备份文件异地转移
数据库异地备份虽然有办法解决,但还是比较麻烦,通过ftp方式对备份文件异地备份还是比较方便的,只是网上大多数客户端软件均需在用户登陆后运行,而服务器一直有个用户登录着感觉不好。
本程序运行于.net 2.0下的绿色软件,以windows服务方式运行,直接更改配置文件,可以运行多个复制作业,每个作业可以指定运行时间、拷贝方式、是否压缩、运行周期等参数,特别是数据库备份,压缩后体积将缩小很多。
上网代理系统服务程序C#
C#写的上网代理服务程序,根据规则,可以对不安全下载进行过滤
简单的代码生成器-MyClassGenarator
简单的代码生成器,生成数据表记录对象封装,简单的问题简单化,不必非得将数据库操作封装成三层