msgbartop
同一天地间,同一网络下,P9′Blog与您共享今日互联网→WWW.P9.NET.CN
msgbarbottom

02 五 08 360安全浏览器

360安全浏览器是全球首款采用“沙箱”技术的浏览器,能够彻底避免木马病毒从网页上对你的计算机发起攻击。
360安全浏览器完全突破了传统的以查杀、拦截为核心的安全思路,在计算机系统内部构造了一个独立的虚拟空间——“360沙箱”,使所有网页程序都密闭在此空间内运行。因此,网页上任何木马、病毒、恶意程序的攻击都会被限制在“360沙箱”中,无法对真实的计算机系统产生破坏,真正做到百毒不侵。

360安全浏览器是全球首款采用“沙箱”技术的浏览器,能够彻底避免木马病毒从网页上对你的计算机发起攻击。

下载地址:http://dl.360safe.com/se/360se_chs.exe

360安全浏览器完全突破了传统的以查杀、拦截为核心的安全思路,在计算机系统内部构造了一个独立的虚拟空间——“360沙箱”,使所有网页程序都密闭在此空间内运行。因此,网页上任何木马、病毒、恶意程序的攻击都会被限制在“360沙箱”中,无法对真实的计算机系统产生破坏,真正做到百毒不侵。

360安全浏览器只有1.6M,小巧轻快、功能丰富,适合快速安装。除独家采用的“沙箱”技术外,360安全浏览器还集成了恶意代码智能拦截、下载文件即时扫描、恶意网站自动报警,广告窗口智能过滤等强劲功能,是目前市面上最安全的浏览器。

功能特点:

全球独家采用“沙箱”技术,真正做到百毒不侵
-将网页程序的执行与真实计算机系统完全隔离,使得网页上任何木马病毒都无法感染计算机系统;
-颠覆传统安全软件 “滞后查杀”的现状,所有已知未知木马均无法穿透沙箱,确保安全。

智能拦截钓鱼网站和恶意网站、开心上网安全无忧
-智能检测网页中恶意代码,防止木马自动下载;
-集成全国最大的恶意网址库,网站好坏大家共同监督评价。

即时扫描下载文件,放心下载安全无忧
-内建深受好评的360安全卫士流行木马查杀功能,即时扫描下载文件;
-木马特征库每日更新,查杀能力媲美收费级安全软件。

体积轻巧功能丰富,媲美同类多窗口浏览器
-支持鼠标手势、超级拖拽、地址栏自动完成等高级功能;
-广告智能过滤、上网痕迹一键清除,保护隐私免干扰;
-内建高速下载工具,支持多线程下载和断点续传。

02 五 08 冠捷AOC威盛芯超便携电脑北京上市


前几日本站登出冠捷在冠捷“Art Of Colors艺彩”2008全球新品暨中国战略发布会答谢晚宴上展示了 10.2 寸的超便携电脑。而短短几天后冠捷 AOC 的超便携笔记本电脑已经在北京中关村电子市场上市,可谓动作神速。 冠捷超便携电脑和华硕的EeePC类似,屏幕10.2寸WXGA的背光LED(非 LCD,LED明显昂贵而且省电)屏幕,分辨率1024X600。处理器方面采用了威盛 C7-M 1.6 GHz处理器,该处理器和 OQO model 02 高配处理器一样,性能不错。内存为 1GB,硬盘80 GB。机身颜色有四种分别是黑 、白、红和蓝.
从做工上看,这款超便携笔记本电脑完全不亚于EeePC,采用的材质无论从手感还是光感都蛮不错,上盖中央是ENVISION 的Logo,整体感觉非常轻薄。包装盒上的捆包重量为 2.05 公斤,如果除去盒子以及其他的包装配件,重量为 1.1千克,尺寸为 (L x W x H) mm 251mm X 185mm X 34mm,体积小巧。操作系统据称是 XP,这一点有待证实,如果真是 XP 操作系统,这么这款超便携笔记本电脑的整体配置还是非常地道,速度也应该不错。据说价格也很实惠。下面是中关村卖场中这款机型的图片,大家可以到中关村鼎好大厦8层 A8001号门店、A8015和海龙大厦 1019 号门店找到这款超便携电脑。

30 四 08 福施福

福施福的作用:
福施福――中国优生科学协会推荐。含有维生素A、D2、叶酸等12 种维生素,含钙、铁、锌、硒等11种矿物质及微量元素。
*补充婴儿神经管发育所需的叶酸、锌、维生素A、C、B12,能抑制神经管畸形,让宝宝健康成长。
*能提前补充营养,提高妇女受孕率,为身体早早做好准备。
*能有效减少早产的发生率。
*临床证明福施福能减轻早孕反应。
*含多种维生素和矿物质,帮助宝宝各个器官健康发育,预防畸形发生.
*福施福能有效降低流产早产的危险。
*福施福能补充硒元素,抑制妊娠高血压综合症的发生。
*能有效补充孕期所需铁质,防止缺铁性贫血。

福施福–孕妇营养素补充剂软胶囊(30粒),含包括400微克叶酸在内的12种人体必需维生素、11种矿物质和微量元素,是一种专门为中国孕妇设计的优于单纯叶酸的复合营养补充品。
每粒胶囊的成份和含量
12种维生素
维生素C 60mg、眼酰胺 14mg、维生素E 8mg、泛酸 4mg、维生素B6 2mg、维生素B1 1.4mg、维生素B2 1.4mg、维生素A (B-胡罗卜素)1876IU、(视黄醇当量 563ug)、叶酸 400ug、生物素 100ug、维生素D2 200IU、维生素B12 3ug
11种矿物质和微量元素
钙 100mg、磷 77mg、镁 30mg、铁 10mg、锌 10mg、钾 4mg、锰 3mg、铜 2mg、钼 100ug、铬100ug、硒100ug
福施福软胶囊不含糖份,麸质,乳糖,小麦,酵母和防腐剂。不含额外热量,长期服用不会发胖。

适合维生素及矿物质缺乏者,尤其适合孕前孕期和哺乳期妇女。孕前服用可以提供良好的营养储备,提高受孕率;
孕期服用可以减轻妊娠反映,预防流产、早产,降低出生缺陷的发生,促进大脑发育;
哺乳期服用可以提高乳汁的质和量,促进产后恢复。
福施福供妇女在受孕前,孕期和哺乳期服用,即怀孕前三个月至怀孕初期三个月,每天一粒,饭后服用。

30 四 08 计划生育技术服务质量管理规范考试试卷

计划生育技术服务质量管理规范考试试卷

乡 姓名 得分

一、单选题(每题1.5分)
1、计划生育技术服务要坚持 的方针
①质量第一,效果第一
②效率第一,服务第一
③以人为本,以服务对象为中心
④安全第一,质量第一
2、 是技术服务质量管理的第一责任人
①计划生育服务机构的技术人员
②计划生育服务机构的管理人员
③计划生育服务机构的法定代表人
④计划生育服务机构的质控人员
3、计划生育技术服务机构应根据 设置岗位确定岗位任职条件
①服务对象的需求节 ②工作任务 ③技术人员的能力
4、计划生育技术服务机构中从事计划生育技术服务的人员,必须取得
①执业医师资格 ②执业助理医师资格 ③计划生育技术服务人员合格证
5、手术室洗手间应安装非手动水龙头,水龙头与洗手面的距离应有
①15cm——25cm ②25cm——35cm
③35cm——40cm ④40cm——45cm
6、乡镇计划生育技术服务机构的手术间和县级以上计划生育服务机构的门诊手术间面积应不低于 m2
①12 ②14 ③16 ④18
7、消毒供应室的物品进出实行污染道 通行。
①单向 ②双向 ③混合
8、使用后的医疗物品按照接受→ 发放窗口的路径和流程运行。
①粗洗→打包→高压消毒→
②精洗→无害化、处理高压消毒→打包→无菌物品储存→
③无害化处理→粗洗→精洗→打包→高压消毒→无菌物品储存室→
④粗洗→精洗→无害化处理→打包→高压消毒→
9、采购的器械仪器设备要按照购货合同、产品合格证、包装、规格、标识、发票 等进行验收。
①购货人签名 ②产品说明书 ③产品出厂日期 ④发货人签名
10、计划生育技术服务机构要建立器械仪器设备保养维护制度,做好器械仪器设备的 日常保养和维护。
①清洗、检验 ②清洗、加油 ③清洗、消毒、防锈 ④清洗、灭菌、防护
11、采购药品在符合资质并持有 的药品经营企业采购。
①《药品经营许可证》和《药品检验合格证》
②《企业法人代表证》和《企业法人营业执照》
③《药品营业执照》和《企业法人执照》
④《药品经营许可证》和《企业法人营业执照》
12、所采购药品必须有 和产品检验合格证明。
①国家药品批准文号 ②国家药品保健文号 ③国家药品卫字号
13、药剂人员应依据本机构 开具的处方调配发药
①主治医师和主任医师 ②执业医师和执业助理医师 ③药剂师
14、药剂人员严格执行 制度,杜绝差错事故,保证用药安全
①三查一对 ②查、校、对 ③一查三对
15、避孕药具储存应做到安全存储,保证质量,降低损耗 。
①收发自如、账物相符 ②收发迅速、账物清楚 ③收发迅速、账物相符
16、避孕药具出库应遵守 原则
①先进后出 ②后进先出 ③先进先出
17、计划生育技术服务机构实行 负责制
①首诊医师 ②主治医师 ③站长
18、在手术或特殊治疗,特殊检查时,技术人员不须严格掌握的是:
①并发症 ②适应症 ③禁忌症
19、计划生育技术服务机构应加强:
①进站管理 ②出站管理 ③住院管理
20、下列哪些病例不属于讨论范围:
①典型病例 ②疑难病例 ③常见病例
21、根据临床技术规范规定的程序术前应向 详细介绍手术过程及相关情况。
①受术者 ②家属 ③计生专干
22、术前是否要与受术者签订知情同意书
①需要 ②不需要 ③无所谓
23、手术室护士在术前不须做好的准备是:
①手术室消毒 ②手术包、药品急救设备的准备 ③器械传递
24、麻醉师与受术者术前是否要进行术前谈话及签订麻醉协议同意书
①需要 ②不需要 ③无所谓
25、计划生育技术服务机构应建立各种术前谈话及签订麻醉协议同意书
①支气管哮喘 ②各种休克 ③急腹症
26、计划生育技术服务机构应设立专(兼)职感染控制员,须在 级别以上?
①乡级 ②县级 ③市级
27、当发现站内感染案例、危险因素、病原菌及其耐药等性等问题时,应及时查找的原因不包括:
①感染源 ②感染途径 ③易感人群
28、消毒方法首选的是:
①物理 ②化学 ③其它
29、一次性医疗用品应存放于阴凉干燥、通风良好距墙壁≥35cm,距地面 厘米的物架上:
①≥30cm ②≥20cm ③≤20cm
30、降低站内感染率的发生,其重点监控部位不包括:
①手术室 ②治疗室 ③观察室
31、抽出的液化,开启的静脉输入用无菌液体须注明时间,超过 小时后不得使用。
①1小时 ②2小时 ③4小时
32、无菌储槽中的无菌物品(棉球、纱布等)一经打开,使用时最长不得超过 小时。
①24小时 ②48小时 ③1周
33、感染性敷料应放在 防渗漏的污物袋内,及时焚烧处理。
①红色 ②黄色 ③黑色
34、做好诊室、治疗室的感染控制,其室内物品应 日用消毒液擦拭。
①每日(1日) ②2日 ③7日
35、首次服务或病程记录应当在服务对象入站 小时内完成。
①4小时 ②8小时 ③12小时
36、首次病程序记录因抢救急危服务对象,未能及时书写,应在抢救结束后 小时内补记
①4小时 ②6小时 ③8小时
37、转入记录由转入科室医师于服务对象转入后的 小时内完成。
①12小时 ②24小时 ③48小时
38、手术记录应当在术后 小时内完成。
①6小时 ②12小时 ③24小时
39、抢救记录的抢救时间应当具体到
①秒种 ②分钟 ③时钟
40、处方由计划生育服务机构的 妥善保存
①药房 ②医师 ③挂号室
41、普通处方、急诊处方、儿科处方保存年限
①1年 ②2年 ③3年
42、医疗质量管理的最终结果是
①诊断质量 ②后勤保障质量 ③终末质量
43、避孕药品、避孕工具、终止妊娠药物和妊娠诊断度试剂及生育调节药品统称为
①计划生育药具 ②医疗用品 ③精神药品
44、医学服务中,因病原体传播引起的感染,称为:
①医院感染 ②医源性感染 ③站内感染
45、住站者在入站时不存在某种感染,也不处在感染的潜伏期,而是在住站期间发生的感染称为:
①医源性感染 ②医院感染 ③站内感染
46、技术服务人员在服务或诊疗活动过程中形成的文字、符号、图表、切片的资料的总和称为:
①住站记录 ②手术记录 ③技术服务记录
47、药物的不良反应为:
①合格药品在正常用法,用量下出现的与用药目的无关的或意外的有害反应。
②合格药品在正常用法,用量下出现的用药目的无关的或意外的无害反应。
③合格药品在正常用法,用量下出现的与用药目的有关的或意外的有害反应。
48、氧气湿化瓶中的气体应为
①自来水 ②白开水 ③无菌水
49、凡进入人体组织或无菌器官的医疗用品必须:
①消毒 ②灭菌 ③清洗

二、多项选择题(除注明外其余每题2分)
1、计划生育技术服务质量规范管理目标是
①保障服务对象的身心健康与生命安全 ②提高计划生育技术服务质量
③提高计划生育技术人员业务水平 ④提高计划生育技术人员服务意识
2、计划生育技术服务质量规范管理包括
①机构管理,人力资源管理 ②器械仪器管理,避孕药具管理
③技术服务过程管理 ④环境安全管理
3、岗位任职条件包括
①业务培训 ②技能和经验 ③受教育程度 ④执业资格
4、计划生育技术服务机构的科室设置因地制宜划分为
①宣教候诊区域 ②质量投诉区域 ③体育、娱乐区域 ④辅助检查区域
5、所采购药品由专门的部门和人员对采购药品依据采购计划,产品合格证 等进行验收。
①生产日期和有效日期 ②包装、数量、规格、标识 ③产品说明书 ④发票
6、凡出现 等失效不合格避孕药具不得向下级机构和服务对象发放
①变色、老化 ②斑点、粘连 ③潮解、溶化、沉淀
7、计划生育技术服务机构的技术服务记录包括:
①接诊服务记录 ②手术记录 ③住站记录
④出诊记录 ⑤随访记录
8、计划生育技术服务机构应加强档案室的管理须建立:
①档案接收记录 ②档案保密制度 ③借阅制度
9、计划生育技术服务机构在服务场所,办公场所必须设置的标识有:
①信息标识 ②导向标识 ③警示标识 ④仪器设备标识
10、医疗质量由哪五个要素组成:(2.5分)
①人员 ②技术 ③物资 ④规章制度 ⑤时间 ⑥场所
11、设备档案包括:
①申请报告 ②论证和可行性报告 ③验收记录
④仪器设备相关资料和制度 ⑤质量检测和维护保养记录
12、进口的一次性导管等无菌医疗器械应有的基本中文标识有:
①灭菌日期 ②失效期 ③生产日期 ④合格证期
13、住站服务对象自己要求出站时,技术服务人员应该怎么办?
①任其出站 ②向其讲明后来 ③坚持出站者让其或家属在出站记录上签字

30 四 08 ASP易心博客v3.1Beta2

易心博客是支持oblog,pjblog,lbsblog,bo-blog,百度空间等众多博客风格的一套asp平台下的个人博客程序。有200000套风格供您选择。程序应用了缓存技术,使网站运行速度更快。完善的广告发布策略,使您轻松的可以在博客中增加广告代码.程序实现了博客的静态化.全新的seo策略.留言评论的审核策略.
下载地址:http://www.ex123.net/exblog/down/3.1/Exblog3.1Beta2.rar
模板下载:http://www.ex123.net/skin/html/index-1.html

30 四 08 AMD CPU K10之后采用全新的处理器架构

自从2003年引入K8 AMD64架构以来,AMD的众多处理器产品均由此衍生而来,即使现在的K10架构也不是从零开始设计的,而是相当于一个拥有不同缓存系统的增强版K8,不过AMD保证说,他们正在规划一个全新的处理器架构。AMD欧洲中东和非洲地区的销售与营销技术主管Giuseppe Amato透露说:“如果看看我们的下一代处理器架构,你就会发现——怎么说呢——它和Phenom是没有可比性的。看起来它会是完全不同的、全新的。”

Amato没有透露任何技术细节,只是说新架构会“解决现在人们认为硬件永远不可能完成的问题”。

结合此前的消息,可以看出Amato口中的全新架构应该就是所谓的“Bulldozer”(推土机)。该架构基于45nm工艺,将于2009年试产,被AMD宣称是“有史以来最高性能的单线程和多线程计算核心”,每瓦特性能可达K10的1.3-2.0倍。

奉行“Tick-Tock”模式的Intel将在今年底推出Nehalem架构,取代Core系列,并每两年更新一次微架构,这对AMD来说无疑是个巨大的压力。在K10系列表现平平的情况下,AMD也确实需要一个全新的架构了。

30 四 08 VB6.0中连接加密的Access数据库

以前曾看过介绍如何在Visual Basic中连接和使用Access数据库的技术文章,实际上在专业的数据库软件开发中,为了确保数据库中信息的安全,往往要求对数据库文件进行加密,以防止非法用户通过其它的常规手段将其打开。那么,在Visual Basic中如何建立与加密的数据库的连接呢?笔者在开发本校的宿舍管理信息系统中,总结了一些方法和技巧,现写出来与同行交流。

  一、建立数据库

  因为在Visual Basic 6.0中有的数据库连接方式不支持Access 2000版本格式的数据库,为了便于说明问题,本文所提的数据库以Access 97版本数据库为例。

  在Microsoft Access 97中建立一个数据库,如:ssgl.mdb,并设置密码,如:“1234”,再将数据库文件和VB中创建的工程文件放在同一目录下。

  如果用户的计算机上只有Access 2000的话,可以先在Access 2000中建立ssgl.mdb数据库,并设置密码,再用Access 2000中的“数据库实用工具”将数据库转换成Access 97版本的格式。

  当然也可以直接在Visual Basic 6.0集成开发环境中通过“可视化数据管理器”来创建数据库,再到Access 97中设置密码。

  通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。

  二、连接加密的Access数据库

  在Visual Basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。开发人员可以根据自身的条件和用户的需求进行选择。

  限于篇幅,下面只介绍加密的Access数据库与没有加密的Access数据库在连接时的不同之处。关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。

  1、使用控件

  ① Data控件

  Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对数据库的连接和访问。 通过Data控件连接加密的数据库的方法有两种:

  一种方法是在设计状态时,在“属性窗口”中将Data控件的connect属性的缺省值”Access”改为”; pwd=1234”即可,其它属性的设置方法与没有加密的Access数据库的连接相同。

  另一种方法是在运行时,通过代码对connect属性赋值来实现。如:

Data1.connect=”; pwd=1234”

Data1.DatabaseName=APP.path + “\ssgl.mdb”

  其中,”1234”为Access数据库文件ssgl.mdb的密码,下同。

  ②Adodc控件

  Adodc控件是一个ActiveX控件,它使用Microsoft ActiveX Data Objects(ADO)创建到数据库的连接。使用Adodc控件之前,要先将Adodc控件添加到控件工具箱中。方法如下:在VB 6.0种选择“工程”菜单,再点击“部件”菜单项,在弹出的“部件”对话框中选中“Microsoft ADO Data Control 6.0(OLEDB)”选项即可。

  通过Adodc控件连接加密的数据库的方法也有两种:

  一种方法是在设计状态时,在“属性窗口”中,对Adodc控件的ConnectionString属性设置一个有效的连接字符串,并在连接字符串后增加上”; Jet OLEDB: DataBase password=1234”,再设置Adodc控件的CommandType、RecordSource的属性就可以创建到加密的数据库的连接了。

  另一种方法是在运行时,通过代码动态地设置ConnectionString、CommandType和RecordSource属性来创建连接。 只要在ConnectionString属性的有效连接字符串后增加上”; Jet OLEDB: DataBase password=1234”即可。

  2、使用数据对象

  ① DAO数据对象

  要能正确引用DAO数据对象来建立与数据库的连接,应先在VB集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框选择“Microsoft DAO 3.51 Object Library”选项来添加DAO数据对象类型库。

  接下来就可用如下代码来建立到加密的Access数据库ssgl.mdb的连接。

Dim db AS DataBase

Set db=OpenDataBase(App.path + “\ssgl.mdb” , False , False , ” ; pwd=1234”)

  ② ADO数据对象

  ADO是Microsoft推出的处理关系数据库和非关系数据库中信息的最新技术,也是Microsoft推崇的用于数据连接和访问的技术。在VB 6.0中,Adodc控件、ADO数据对象及DataEnvironment(数据环境设计器)都采用的是ADO技术,因而它们处理加密的Access数据库的方法类似。

  要能正确引用ADO数据对象,应在VB 6.0集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框中选中“Microsoft ActiveX Data Objects 2.1 Library”选项来添加ADO数据对象类型库。

  可用如下代码来建立到加密的Access数据库ssgl.mdb的连接。

Dim cnn AS ADODB.Connection

Dim rst AS ADODB.Recordset

Set cnn=New ADODB.Connection

Cnn.Provider= ”Microsoft.Jet.OLEDB.3.51”

Cnn.ConnectionString= ”Data Source=” & App.path & ”\ssgl.mdb;” & _

” ;Jet OLEDB:Database password=1234”

cnn.Open

  ③ 使用DataEnvironment(数据环境设计器)

  有两种方法可以通过DataEnvironment连接到加密的Access数据库:

  一种方法是在设计状态时,在DataEnvironment的connection对象的ConnectionSource属性的有效连接字符串后加上” ;

Jet OLEDB: Database password=1234”

  另一种方法是在DataEnvironment_Initialize()事件中编写如下代码:

Private sub DataEnvironment_Initialize( )

Dim strconn AS string

Strconn=” Provider=Microsoft.Jet.OLEDB.3.51;” & _

”Data Source=” & App.path & “\ssgl.mdb;” & _

”; Jet OLEDB: Database password=1234”

DataEnvironment1.connection1.connectionstring=strconn

End sub

  以上方法及相关代码笔者都已在Windows 98操作系统环境,Visual Basic 6.0中调试、验证并通过。

Tags:

30 四 08 VB图像处理之像素的获取和输出

要处理一个图像,首先要获得该图像的像素值,而VB本身提供的PICTURE控件虽然可以打开很多类型的图片,但是它提供的那个POINT方法读取像素实在是太慢。而使用GetPixel这个API的速度也快不到哪里去,因为PIONT方法本身就是对于GetPixel的一个包装。

  在VB中要快速获取一幅在PICTURE中打开的图像比较快速的方法是使用DIB方法,当然还有DDB方法,不过使用DDB方法还需要考虑不同颜色深度的图像的分别处理,在程序的实现上要相对复杂,而使用DIB方法则不必,并且在处理速度上比DDB方法也慢的有限。

  过程一:获得一个在PICTURE控件中打开的图像的所有像素。
[code]Public Sub DibGet(ByVal IdSource As Long, XBegin As Long, ByVal YBegin As Long, ByVal XEnd As Long, ByVal YEnd As Long)
 Dim iBitmap As Long
 Dim iDC As Long
 Dim I As LongDim
 Dim W As Long
 Dim H As Long

 On Error GoTo ErrLine
 Done = False
 TimeGet = timeGetTime
 InPutWid = XEnd - XBegin
 InPutHei = YEnd - YBegin
 W = InPutWid + 1
 H = InPutHei + 1

 I = (Bits \ 8) - 1
 ReDim ColVal(I, InPutWid, InPutHei)
 With bi24BitInfo.bmiHeader
  .biBitCount = Bits
  .biCompression = 0&
  .biPlanes = 1
  .biSize = Len(bi24BitInfo.bmiHeader)
  .biWidth = W
  .biHeight = H
 End With

 iBitmap = GetCurrentObject(IdSource, 7&)
 GetDIBits IdSource, iBitmap, 0&, H, ColVal(0, 0, 0), bi24BitInfo, 0& DeleteObject iBitmap
 Done = True
 TimeGet = timeGetTime - TimeGetExit Sub
ErrLine:
 MsgBox "错误号:" & Err.Number & ":" & Err.Description
End Sub[/code]

在这个过程中所用到的只是一些参数的设定和API的调用,不涉及算法。

  过程二:图像输出的过程:[code]Public Sub DIBPut(ByVal IdDestination As Long)
 Dim W As Long
 Dim H As Long

 On Error GoTo ErrLine
 Done = False
 TimePut = timeGetTime

 W = OutPutWid + 1
 H = OutPutHei + 1

 With bi24BitInfo.bmiHeader
  .biWidth = W
  .biHeight = H
  LineBytes = ((W * Bits + 31) And &HFFFFFFE0) \ 8
  .biSizeImage = LineBytes * H
 End With
 SetDIBitsToDevice IdDestination, 0, 0, W, H, 0, 0, 0, H, ColOut(0, 0, 0), bi24BitInfo.bmiHeader, 0

 Done = True
 TimePut = timeGetTime - TimePut
 Exit Sub
ErrLine:
 MsgBox Err.Description
End Sub[/code]

下面解释一下在过程中到的全局变量和数据结构,以及API的定义。

  API定义:

  删除一个DC

Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

删除一个对象

Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

选择当前对象

Private Declare Function GetCurrentObject Lib "gdi32" (ByVal hdc As Long, ByVal uObjectType As Long) As Long

获取DIB

Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BitMapInfo, ByVal wUsage As Long) As Long

获取系统时间

Private Declare Function timeGetTime Lib "winmm.dll" () As Long

数据结构定义:[code]Private Type BitMapInfoHeader '文件信息头——BITMAPINFOHEADER
 biSize As Long
 biWidth As Long
 biHeight As Long
 biPlanes As Integer
 biBitCount As Integer
 biCompression As Long
 biSizeImage As Long
 biXPelsPerMeter As Long
 biYPelsPerMeter As Long
 biClrUsed As Long
 biClrImportant As Long
End Type

Private Type RGBQuad
 rgbBlue As Byte
 rgbGreen As Byte
 rgbRed As Byte
 'rgbReserved As Byte
End Type

Private Type BitMapInfo
 bmiHeader As BitMapInfoHeader
 bmiColors As RGBQuad
End Type[/code]这三个数据结构都是在DIB中不可缺少的。我们不必深究,只是按照顺序复制粘贴直接使用就是了。

  过程中用到的全局变量:
[code]Private Const Bits As Long = 32 '颜色深度,这里把所有图像都按照32位来处理
Public Done As Boolean '用于标记一个过程是否结束
Public TimeGet As Long '用于记录输入过程处理所花费的时间
Public TimePut As Long '用于记录输出过程处理所花费的时间
Dim ColVal() As Byte '用于存放从DIB输入的像素值
Dim ColOut() As Byte '用于存放向DIB输出的像素值
Dim InPutHei As Long '用于记录输入图像的高度
Dim InPutWid As Long '用于记录输入图像的宽度
Dim bi24BitInfo As BitMapInfo '定义BMP信息[/code]
可以看出,我在输入和输出中使用了两个不同的动态数组ColVal()和ColOut(),这么做是有道理的,因为我们不只是为了输入和输出图像,中间还要对像素进行处理。包括图像缩放、色彩调整、锐化、柔化等等处理,使用两个不同的数组来分别存放数据更有利于程序的实现。

  有些性急的朋友说不定已经把程序贴到工程里试用了,可是会发现根本不能输出图像。这是因为当你用DIBGET获得的图像还在ColVal() 中呢,需要把它们放到ColOut()这个数组中去,DIBPUT这个过程才能起作用。

  这里再给出一个用于数组整体移动数据的过程:
[code]Public Sub CopyData(ByVal W As Long, ByVal H As Long)
 Dim Length As Long
 Dim I As Long
 Dim L As Long
 I = Bits \ 8
 L = I - 1
 Length = (W + 1&) * (H + 1&) * I
 ReDim ColOut(L, W, H)
 CopyMemory ColOut(0, 0, 0), ColVal(0, 0, 0), Length
End sub[/code]

API定义:

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)

这时,我们就可以来试一下效果了:

  把你的显示器调到32位色。

  将前面的所有API和变量定义全部贴到一个新建的模块里

  新建一个窗体,加两个PICTURE控件:pictrue1 ,picture2 一个按钮command1

  在pictrue1中加载一个图片

  在command1中写如下代码:
[code]sub command1_click()
 With picture1
  .ScaleMode=3
  .BorderStyle=0
  DibGet .hdc,0,0,.scalewidth,.scaleheight
 End With
 CopyData InPutHei ,InPutWid
 picture2.AutoRedraw=True
 DibPut picture2.hdc
 picture2.refresh
end sub[/code]
运行一下,按钮按下,pictreu1中的图片就立刻显示到了picture2中。

  这时,你可能会说,弄了这么半天就贴个图?用PaintPicture不是就可以了吗?

  不错,如果只是要贴个图,确实不用这么麻烦,可是,我们后面要说的图像处理部分将会用到前门得到的像素值。所以,这只是一个开始,我真正要讲的东西还在后面呢。请大家继续关注。

30 四 08 VB编程的几个API函数的应用问题

Q :–怎样在我的程序中实现文件下载

  Re:

  一个例子:一个Command,两个Text 代码如下:

     Private Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long

   Private Sub Command1_Click()

     Dim sDownload As String

     sDownload = StrConv(Text1.Text, vbUnicode)

     Call DoFileDownload(sDownload)

     End Sub

   Private Sub Form_Load()

     Text1.Text = "http://www.yyy.com/aa.zip"

     Form1.Caption = "Audiograbber 1.62 Full"

     Text2.Text = "http://www.xxx.com/aa.zip"

     End Sub

  Q :–如何在vb中定义一个热键,使得当一个应用程序的窗口最小化后,可以通过热键来唤醒它

  Re:

  先声明API函数SendMessage,然后添加一个按钮和如下代码;

     Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVa l hwnd As Long, ByVal_    wMsg As Long, ByVal wparam As Long, lparam As Any) As Long

   Private Sub Command1_Click()

     Dim wKey As Long

     wKey = 66

     X = SendMessage(Me.hwnd, WM_SETHOTKEY, wKey, 0)

     MsgBox "B 键将激活窗体!", 64, "定义快捷键"

     End Sub

  

  enjoy it!

30 四 08 VB编程的一些基础问题

Q :–请问VB中hwnd属性的含义是什么

  Re:

  Microsoft Windows 操作系统通过给每一个窗口指定一个唯一的标识号(窗口句柄或 h Wnd)来管理所有的窗口。操作系统连续地监视每一个窗口的活动或事件的信号。事件可以通过诸如单击鼠标或按下按键的操作而产生,也可以通过程序的控制而产生,甚至可以由另一个窗口的操作而产生。你可以在很多API函数的参数中看到这个属性。

  Q :–请问在VB中怎样声明全局变量

  Re:

  用Global语句,方法是先新建一个标准模块Moudle1,然后在其中声明全局变量。举个例子,如果我们要把“a”声明为全局变量,则使用如下的语句即可:

  Global a As Integer

  然后我们就可以在整个程序中使用这个变量了

  Q :–在vb里能不能把wav文件加到exe文件里?怎么做?

  Re:

  1、文字资源的定义格式

    STRINGTABLE

     BEGIN 8001,"your string1" 8002, "your string2"

     END

  其中8001、8002是文字编号,调用方法如下:

     s=loadresstring(8001)

  2、rc.exe文件刚安装vb时好象没有,得到vb的安装盘上找,并且要同时把rcdll.dll文件 拷贝下来

  3、其他资源调用的方法

  set image1.picture=loadrespicture("resource",vbresbitmap)

  set me.icon=loadrespicture("earth",vbresicon)

  set me.mouseicon=loadrespicture("bigpoint",vbrescursor)。