VBA计时器Timer的使用

Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Public lTimerID As Long

Sub Start()
    '启动计时器,时间间隔1分钟
    StartTimer 60000
End Sub

Sub StartTimer(lDuration As Long)
    If lTimerID = 0 Then
        lTimerID = SetTimer(0, 0, lDuration, AddressOf OnTime)
    Else
        Call StopTimer
        lTimerID = SetTimer(0, 0, lDuration, AddressOf OnTime)
    End If
End Sub

Private Sub StopTimer()
    KillTimer 0, lTimerID
End Sub

Private Sub OnTime()
    ' 计时器触发后运行的代码放在这
    ' ...
    SendFile "c:\abc"
    SendFile "c:\cba"
End Sub

Visual Studio速成版前途未卜

Visual Studio 速成版(Visual Studio Express)从来就不是一款免费产品。它的第一个版本发布于 2005 年,当时目标是成为一款入门级产品,并且售价大约 100 美元。为了建立产品用户群和促进 .NET 的发展,微软曾许诺第一年注册该产品的用户将可以免费获取。

该产品的推广活动开始于 2005 年 11 月 7 日,截止到 4 月 19 日共有超过 500 万份 VS Express 的拷贝被下载。见状,微软觉得最好把该产品免费公开。当时共有 5 种可用的 VS 速成版本,它们是:Visual Basic、Visual C#、Visual J#、Visual C++ 和 Visual Web Developer。

虽然 Visual J#已经不复存在,但是其他版本都进行了更新并推出了 Visual Studio 2008 和 2010 版本。另外,新版本的 Windows PhoneXNA Game StudioRobotics Developer Studio 也随之发布。(后两者自从变为增件之后,需要依附于另外的 Visual Studio 速成版。)

《Visual Studio 产品指南》仅列出了以下版本:

  • 面向 Windows 8 的速成版(Express for Windows 8)
  • 面向 Web 的速成版(Express for Web)
  • 专业版(Professional)
  • 高级版(Premium)
  • 旗舰版(Ultimate)
  • 测试版(Test Professional)

目前,微软对于是否最终发布 Visual Studio 11 版本的C++、VB、C#和 Windows Phone 速成版尚未表态。

如何创建流畅Metro应用

Windows 8 Metro应用程序不仅仅具有很快的反馈速度和提供更多的信息,而且可以提供流畅的动态效果,就像微软自己说的“fast and fluid” 。在官方的Windows 8 应用开发博客上发布了最新的一篇帖子,微软已经为应用程序开发商如何开发具有动态效果的Metro风格的应用程序提供了一些建议。

查看:Fast and fluid animations in your Metro style app

这篇帖子上罗列了一些Windows 8 Metro风格应用开发的技巧,可以通过JavaScript和XAML为基础的应用程序来创造流畅的动画效果。一种是采用独立动画模块,就意味着这些动画效果可以使用编码的形式运行“独立的运行在Metro UI界面之下”。
在Windows 8 有很多的动画效果是由一个一个独立的分支引擎串联起来的。引擎的工作就是CPU和GPU的桥梁。GPU可以让用户充分的发挥其作用可以大量使用在视频等上面。
同时帖子上也指出如果已经使用了Windows 8系统或者像实现简单的编程的话可以使用微软为开发者提供的专属Microsoft Animation Library

VB.Net获取打印机列表

For Each sPrint As String In PrinterSettings.InstalledPrinters
    listBox1.Items.Add(sPrint)
Next

微信开放平台正式开放SDK文档和下载

近日,微信iPhone客户端4.0版本正式发布,除加入相册及朋友圈功能外,还开放微信接口,支持从第三方应用向微信通讯录里的朋友分享音乐、新闻、美食、摄影等消息内容。日前,微信开放平台正式开放SDK文档和下载,同时,第三方应用的注册申请也即将开通。

微信开放平台功能介绍:

1、聊天

面对一张美丽的图片,一首优美的音乐,一段精彩的视频,一则有趣的新闻......你的用户是否苦于不能把它们及时分享给好友?看看微信为你准备的解决方案:

用户在第三方手机应用中通过调用微信可将指定内容分享到微信任一对话中。为了保证用户使用体验的连贯性,在微信端完成分享后用户将返回第三方手机应用继续之前的操作。 微信用户在会话中通过附件栏直接调用第三方手机应用进行消息分。同样为了保证用户使用体验的连贯性,在第三方手机应用完成分享后,微信用户将返回之前的会话界面。

开发者可选择让微信用户使用微信、网页、第三方手机应用打开微信好友分享过来的内容,在微信中分享的内容会标注出来源,点击来源将直接打开第三方手机应用或者进入应用下载页面。

2、朋友圈

朋友圈是微信4.0推出的新功能,微信用户通讯录中的好友均能及时看见朋友圈的内容,微信用户可以将手机应用、PC客户端、网站中的精彩内容快速分享到朋友圈中,朋友圈中分享过来的内容支持网页方式打开,分享的内容同样会标注出来源。

接入方式:

1、终端SDK(适合第三方移动应用接入)

微信开放平台注册的用户,通过申请AppID即可获得使用移动应用开发工具包的权限。利用开发工具包,配合微信4.0及以上版本,可在本机进行调试。开发者可以将第三方应用内容分享到微信会话中,还可以将应用的LOGO放入微信附件栏中,让微信用户方便地在会话中调用第三方应用进行内容选择与分享。

2、开放协议(适合第三方移动应用、PC客户端和第三方网站接入)

开放协议使用OAuth的授权机制进行开发,针对取得微信授权的第三方合作者。通过开放协议接入方式,第三方手机应用、PC客户端和第三方网站直接通过微信后台将内容分享到朋友圈。

目前,微信已经接入打通了腾讯旗下多款产品,如QQ、QQ邮箱、腾讯微博、腾讯新闻等。4月24日,美丽说宣布成为首批登录微信开放平台的应用之一,用户可以将自己在美丽说中的内容分享到微信中。

微信开放平台SDK地址:http://open.weixin.qq.com/

在Visual Studio中使用Git和GitHub

Git成为最流行的版本控制工具并不是没有理由的,GitHub更使我们不用再埋头默默写代码,而是与那些更优秀的Coder们交流。
Git与各种IDE都有集成,下面记录下我自己在Visual Studio中使用Git的一些过程。
一、安装环境
1、在这里下载 Git Extensions 并安装,注意安装的时候勾选msysGit和 KDiff3;
启动 Git Extensions 后自动检查配置是否完完整,根据提示完成配置即可。
2、安装 Git Source Control Provider
Git Source Control Provider 是 Visual Studio 的一个扩展插件,它依赖于Git Extensions,并为VS提供了方便的图形化操作;
直接从VS的扩展管理器中搜索并安装即可;
安装完成后,重启VS,即可在菜单中看到Git选项了。进入VS选项的Source Control,将源代码管理插件设置为Git Source Control Provider;
二、建立本地库
1、右键点击项目名称,可以看到在菜单中多出了git选项;
2、选择New Repository会在项目目录下生成 .git 文件夹,即版本库存放的位置。此时Repository中没有任何文件,项目文件前带有“+”图标,表示文件尚未提交到Repository。
3、提交文件到Repository中。选择Git - Commit,在提交窗口中Stage All,然后Commit即可。
注意:可以通过编辑 .gitignore来选择忽略的文件;Commit的时候养成提交详细的Commit信息的习惯。
4、提交完成后,我们可以看到Git已经建立的master分支。我们可以通过Browse或是History来浏览版本库信息。
当然,以上操作也可以在命令行中完成。
三、Push到Github
1、 你需要的包括:GitHub账户,SSH密钥 (PuTTY私钥);
2、GitHub的帮助信息中提供了如何生成SSH密钥并上传密钥至Github的指南;
3、打开Git Extensions中选择远程 - PuTTY,导入生成的SSH密钥并生成PuTTY私钥;
4、在Github中创建一个新的Repository,此时会提供给你Repository远程地址等等信息;
5、右键点击项目名称,选择Git - Push,出现一个Push窗口。选择“管理远程”,填写档案库名称和Repository地址(形如git@github.com:yourname/yourrepositoryname.git),加载SSH密钥,测试连接通过后保存;
6、重新在VS中选择Push项目,选择刚才保存的远程档案库名称,从master Push 到 master,点击推送即可。
7、推送成功后,即可访问Github的Repository并找到上传的文件。

TFS新建团队项目模板差异

在搭建好的TFS server中,我们新建了团队项目集之后,需要在团队资源管理器中(VS10版本)新建团队项目,在向导中有:选择过程模板

clip_image001

这两个过程模板可以用于定义计划和跟踪项目的工作项,报表和面板集。

两者的不同在于:

如果团队使用SCRUM或者其他敏捷过程,选择MSF for Agile

���果团队需要严格的审计记录并对变更管理使用正式过程,选择MSF for CMMI。

两者的主要差异:

工作流状态:

· 当团队通过将工作项的状态从活动更改为已解决直至已关闭来记录多数工作的进度时,请选择 MSF for Agile。 团队会创建一个处于活动状态的工作项,并在完成工作后解决该工作项。

· 当团队通过将工作项的状态从已建议更改为活动、已解决直至已关闭来记录多数工作的进度时,请选择 MSF for CMMI。 团队会创建一个处于已建议状态的工作项,并且只有在已接受该工作项后,才会将其转为活动状态。

MSF for Agile的活动状态有:活动,已建议,已解决。

MSF for CMMI的活动状态有:已建议,活动,已解决,已关闭。

产品计划:

· 如果围绕用户情景和情景点来计划产品,请选择 MSF for Agile。

· 如果基于要求和更改请求来计划产品,请选择 MSF for CMMI。

迭代挤压工作管理:

· MSF for Agile 提供了“迭代积压工作”工作簿,该工作簿可用于计划迭代。

Bug积压工作管理:

· MSF for CMMI 提供了用于跟踪症状和建议的修复方案的附加字段。

项目管理:

· 使用 MSF for Agile,团队可以通过创建问题工作项来跟踪团队项目的已知或潜在的问题、障碍或风险。

· 使用 MSF for CMMI,团队可以通过创建问题或风险工作项来跟踪团队项目的已知或潜在的问题、障碍或风险。 此外,还可以使用评审工作项正式跟踪代码评审。

测试管理:

· 为测试用例跟踪的信息对于这两种 MSF 过程模板基本相同。

· 测试管理报表对于这两种 MSF 过程模板基本相同。

审核记录:

· 当不要求团队支持严格审核时,请选择 MSF for Agile。

· 当要求团队维护严格的审核记录或致力于能力成熟度模型集成 (CMMI) 认证时,请选择 MSF for CMMI。

SQL2012 LocalDB连接字符串

SQL2012 LocalDB是一个基于单机的MSSQL数据库引擎,是MSDE和SQLCE的后继版本,他的连接字符串如下:

Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\db_CSManage.mdf;Integrated Security=True;Connect Timeout=30

最后送上Microsoft® SQL Server® 2012 Express and LocalDB的相关下载地址:

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=C3A54822-F858-494A-9D74-B811E29179E7

修改Visual Studio 11欢迎画面上的授权信息

由于Win8在安装时使用了Live ID绑定作为主账号,导致VS11安装后,启动画面上的授权信息一直显示我的MSN邮箱,不爽,遂改之,具体方法如下:

修改以下注册表键值

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\Registration\UserName
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization

然后运行 devenv.exe /setup 命令