VB与Windows API讲座(二) 萤幕抓取与萤幕保护程式
文章来源:vb大世界 作者:王国荣
「VB 没有提供这样的功能, 必须呼叫 Windows API」, 当笔者这样回答读者之後,有些读者会要求笔者介绍 Windows API 方面的书籍, 尤其是中文书, 但实际上,目前市面上只看到一本原文书(ZD Press 出版的 Visual Basic 5.0 Programming Guide to Win32 API), 中文书则未见过, 为什麽没有 Windows API 方面的中文书呢?道理很简单, Windows API 对 VB 的学习者而言, 犹如山峰之颠, 能够一路爬上来的人原本就十分有限,而越往山顶, 人烟越稀少, 因此这样的书写出来, 销售成绩必然惨不忍睹, 也许有些读者会觉得本土的作者实在很混,只愿意写简单的书, 但撰写深入的书籍, 费时费力费神而销售成绩又不好, 最终结果是这种不混的作者混不下去,当过读者而现在又是作者的笔者, 对於此一现象有时也颇感无奈。
不管怎样, 笔者现在已经开始介绍 Windows API 了, 也许真的不想混了,但混与不混不是笔者开启本系列讲座最担心的事情, 笔者所担心的是这样的主题对读者来说会不会太枯燥?会不会太艰涩?会不会像笔者当初研读 Windows API 时, 越研读心中的疑问越多, 就好像进入无底黑洞一样?
为了避免以上的结果, 在内容的介绍上, 笔者会倾向於即学即用的 API, 短期内尽量避免深入 Windows 无底黑洞地带, 而会先到那些有花有草地方。
本期笔者想引领您去的地方是:萤幕抓取程式与萤幕保护程式。
萤幕抓取程式简介
如果不写程式, 抓取萤幕图像的方法是:按下 Print Screen 键, 然後开启 Windows 的小画家, 接着选取小画家功能表的「编辑/贴上」, 即可将萤幕图像复制到小画家的绘图区域中。
如果写程式呢?稍後笔者就会介绍, 介绍以前, 建议您先进入笔者的网站下载笔者所撰写的萤幕抓取程式(CopyScr.vbp),一来可了解程式的基本运作模式, 二来不必自己输入程式, 此一程式执行後,选取功能表的「我抓我抓我抓抓」, 即可将萤幕的图像复制进来。
萤幕保护程式简介
保护萤幕最简单的方法就是不用时关掉它, 但有这种好习惯的人实在不多,所以有人写程式侦测滑鼠与键盘的输入, 如果有一段时间没有滑鼠或键盘的输入,便将电脑视为没有人在使用, 而把萤幕显示成黑色, 用以保护萤幕, 後来又有人觉得黑色太难看了,就加了一点动画, 慢慢地动画越来越多也越有趣, 结果反倒成为萤幕保护程式不可或缺的功能,而不再以保护萤幕为主了。
如何撰写萤幕保护程式当然也是本期的重点, 同样的, 介绍以
相关文档:
VC函数是:extern "C" int __declspec(dllexport)PassPortRead(char *InPutData,char OuPutData[255]);
VB声明是:Private Declare Function PassPortRead Lib "PPRead.dll" (ByVal InPutData As String, ByVal OutPutData As String) As Integer
生成的文件能正常运行,并且能生成相应数据,但是在调试时提示"DLL调用约定错 ......
今天想要做类似金山词霸屏幕取词的功能,在网上找了一些资料,发现都很复杂。既然金山词霸已经实
现了,借用之:
金山词霸中2005中带了一个XdictGrb.dll,其实是一个COM组件,并且实现了一个取词的插件框架。
其中的有以下内容:
1 接口
1.1 GrabProxy 取词代理对象
Function AdviseGrab(XDictGrabSink As IXDictGra ......
下面是我所掌握的使用ADO对数据库操做的一些常用方法,主要是提供给初学者做为参考,有不对的地方请指正。如有补充不胜荣幸
准备工做
========
来源:www.va1314.com/bc
Dim conn As New ADODB.Connection '创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行
Dim rs As ......
ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作系统的结合非常的好,使得ASP已经成为了NT开发平台上面进行WEB开发的首选语言和环境。
他有着简单易学,方便快速开发的种种优点,但是他也有着致命的弱点,就是他是脚本语言解释执行的,速度会受到 ......
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Private closeTime As String
Sub AdjustTokenPrivilegesForNT()
......