摘要:
OperatingSystem os = Environment.OSVersion;switch (os.Platform){ case PlatformID.Win32NT: switch (os.Version.Major) { case 3: return "Windows NT 3.51"; case 4: return "Windows NT 4.0"; case 5: switch ... 阅读全文
随笔分类 - C#
获取当前执行的函数(Testcase)名称
2009-01-20 14:45 by yufun, 553 阅读, 收藏, 编辑
摘要:
可以通过下边的方法获得执行到当前代码的整个Call Stack,然后通过遍历,找到自己需要的函数名称: System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(); System.Diagnostics.StackFrame[] frames = st.GetFrames(); 阅读全文
C#中三种截屏方式总结
2009-01-20 11:36 by yufun, 32271 阅读, 收藏, 编辑
摘要:
昨天写自动化测试的CASE的时候,碰到一个疑难杂症,调用截图的函数去截取一个Popup窗口,但是总是把背景程序给截下来,Popup窗口就跟看不到一样。本来以为是同步的问题,也就是以为先截图再点击弹出Popup窗口了。后来加了N个Thread.Sleep来测试,发现根本不是因为这个原因,而是截图的函数截不下来这个窗口。这个为啥呢,只好把截图的函数代码翻出来看,以前是用这种方式的:BitBlt(dcI... 阅读全文
在C#中如何模拟鼠标键盘操作
2009-01-12 16:59 by yufun, 1394 阅读, 收藏, 编辑
摘要:
上一篇讲了在自动化测试中如果控件不能识别,我们最后的办法是模拟鼠标键盘,这一篇就讲如何来做。首先我先讲在C#中怎么做,至于在C++或者脚本中怎么做,留在后边来讲对C#来说,键盘的模拟比较简单,在.Net Framework中System.Windows.Forms.SendKeys这个类鼠标呢,看下边代码: 1: [DllImport("user32")] 2: public static ext... 阅读全文
在C#中调用API进行截屏
2009-01-12 16:58 by yufun, 2878 阅读, 收藏, 编辑
摘要:
看代码:需要Reference下面的DLL: System.Drawing System.Windows.Forms WindowBase 1: using System; 2: using System.Collections.Generic; 3: using System.Text; 4: using System.Windows; 5: using System.Windows.Fo... 阅读全文
快速找到并输入连接数据源的字符串
2009-01-12 15:58 by yufun, 501 阅读, 收藏, 编辑
摘要:
以前在学校的时候,从一个做数据库的同学那里知道下边的这个方法,结果后来忘掉那个扩展名是'udl'了,今天看到完美Excel的这篇文章,赶快转帖过来,以防止以后忘掉:) 转自:快速找到并输入连接数据源的字符串 最近,又复习了《Excel 2003 VBA Programmer’s Reference》关于数据库编程的章节,上面介绍了一种快速找到连接数据源的字符串的方法,介绍如下,供参考。 通常,在E... 阅读全文
搜索PInvoke函数声明的网站
2009-01-10 00:00 by yufun, 255 阅读, 收藏, 编辑
摘要:
虽然.Net的类库提供的非常强大的功能,但还是有很多时候需要用到Native的Windows API,这时候就需要用到PInvoke,来在C#中调用API。http://www.pinvoke.net/index.aspx可以搜索Windows API在C#中的声明方式比如我们模拟鼠标消息时会用到mouse_event,在C#中的声明方式如下:http://www.pinvoke.net/defa... 阅读全文
C#中的多线程简单应用
2009-01-08 17:10 by yufun, 643 阅读, 收藏, 编辑
摘要:
我们有时候需要做一些很耗时间的操作,比如到网络上拿一些数据或者对很多数据进行运算处理,如果是在单线程的程序中,这些运算就会阻塞UI线程,现象就是UI不能响应用户的任何操作,不会刷新。这个时候用户很可能以为程序已经死掉,从而造成很差的用户体验。 解决方法:将很耗时间的运算和处理放在单独的一个线程中进行,UI操作不会受到影响,用户还可以进行其它操作(如果UI中有些操作依赖于当前的的处理,我们可以先将它... 阅读全文