自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (14)
  • 收藏
  • 关注

原创 Linux Netbeans C++ 无法调试问题

linux netbeans c++ 调试

2023-09-04 13:41:02 74 1

原创 新图片验证码

图片验证码的设计

2022-11-24 19:17:13 81

原创 sql server连接oracle7302错误总结

做了多少次,总是报7302错误,此问题网上时间跨度很大,总有人问,记下备忘。 Sql Server连接oracle最好使用oracle的odac ,微软自带的oracle组件仅在部分低版本32位中有效。 1、设置系统环境变量 ORACLE_HOME 、TNS_ADMIN其中TNS_ADMIN 指明连接串文件位置. 2、下载并安装odac(不需要安装oracle客户端),系统是64位的就安装odac64位版本,解压后用目录中的install.bat安装如: install.ba...

2021-04-09 16:50:34 2777

原创 DataGridView增加汇总行

.net DataGridView不支持汇总行,使用起来多有不便,本想重写此控件,以前做Web项目时曾用Javascript写过与WinForm中的DataGridView类似的控件,但分析微软的代码后感觉重写非常的烦,所以采用改造原控件的方式,重写OnLayout函数,当布局完毕,通过反射修改网络区的大小,在底部留出汇总条的位置,将汇总条嵌在其中,这样网格内容与汇总条内容不会相互影响,同时在涉及

2009-10-08 22:01:00 1312

原创 Javascript多线程问题

Javascript本不具备多线程特性,看了网上许多模拟多线程序的做法,多数是将任务拆分为小任务,这样可以将处理时间较为均等地分配到每个小任务,但实际处理中任务拆分实在太难,有的甚至无法处理。下面是IE中javascript遇到的现象,一起看看。假如要用javascript动态生成一巨型树 (不考虑节点延迟加载),用一函数来做function CreateTree(){  for(var i=

2007-12-04 08:45:00 515

原创 树型结构在关系数据库中的存储

网上方法很大,也许此方案只是其中一种,使用ID ParentID FullPath 三字段来描述树结构,对实际树型结构数据有如下假设:1、数据总量不大,如果数据量很大,会考虑用多张表来描述其数据关系,不会考虑在一张表来实现树型结构2、结点深度可以接受,这样FullPath产生的冗余数据也可以接受,查询效率也会较高3、经常需要根据结构关系查询 Create table Dept (DeptID in

2007-11-18 10:47:00 491

简单实用的跨库数据同步工具FDataX

简单实用的跨库数据同步工具FDataX, 支持多并发自动分片,事务, 实时自定义,状态可视

2022-09-16

selenium打印对话框操作函数

通过此函数识别打印对话框“打印”按钮的位置,再通过 pyautogui.click(x,y)模拟点击即可操作打印对话框

2021-07-04

C# 绘制Code128 auto条码

不到200行代码,实用的绘制Code128 auto条码程序,Code128 auto采用 A、B、C混合编码,将条码长度压缩到最短

2017-05-26

c#斑马打印机类

斑马打印机资料很少且不全,通过分析ZebraDesigner的输出及Zebra多平台SDK的部分代码,完成Zebra C#打印的封装类,通过打印印驱动输出ZPL进行打印,汉字采用点阵数据打印的方式完成。

2016-05-30

Java仿.NET 的DateTime封装

Java或jdbc操作日期时间存在诸多不便,代码通过对Date、Calendar、SimpleDateFormat的封装,实现类似.NET DateTime的功能

2014-09-08

模拟键盘鼠标发飞信短信

模拟键盘鼠标操作飞信界面发送短信 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; }

2014-03-17

winform皮肤包

winform 皮肤版权为原作者所有

2012-03-01

RouterOS免脚本多线ADSL负载均衡

RouterOS免脚本多线ADSL负载均衡

2010-09-19

RouterOS免脚本多线ADSL负载均衡

RouterOS免脚本多线ADSL负载均衡

2010-09-19

RouterOS免脚本多线ADSL负载均衡

请下载http://download.csdn.net/source/2706681

2010-09-19

JS网页计算器,条状数字,分节符等模拟实际计算器外观

普通计算器的网页实现,条状数字,分节符等模拟实际计算器外观

2010-08-03

图片大小批量调整工具

用于批量调整图片大小,特别是像机拍的照片想批量变成上传的小图的情况,需在.net 2.0以上环境运行

2010-04-05

Ftp备份拷贝,主要用于数据库备份文件异地转移

数据库异地备份虽然有办法解决,但还是比较麻烦,通过ftp方式对备份文件异地备份还是比较方便的,只是网上大多数客户端软件均需在用户登陆后运行,而服务器一直有个用户登录着感觉不好。 本程序运行于.net 2.0下的绿色软件,以windows服务方式运行,直接更改配置文件,可以运行多个复制作业,每个作业可以指定运行时间、拷贝方式、是否压缩、运行周期等参数,特别是数据库备份,压缩后体积将缩小很多。

2009-06-17

上网代理系统服务程序C#

C#写的上网代理服务程序,根据规则,可以对不安全下载进行过滤

2009-03-29

简单的代码生成器-MyClassGenarator

简单的代码生成器,生成数据表记录对象封装,简单的问题简单化,不必非得将数据库操作封装成三层

2008-11-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除