Google [站内搜索]

预览模式: 普通 | 列表

VB模拟键盘输入的N种方法

键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作。但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件。那么我们怎样才能用VB来写一个程序,达到与按键精灵类似的功能呢?那就让我们来先了解一下windows中响应键盘事件的机制。  

当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机。如何区别是哪一个键被按下了呢?键盘上的所有按键都有一个编码,称作键盘扫描码。当你按下一个键时,这个键的扫描码就被传给系统。扫描码是跟具体的硬件相关的,同一个键,在不同键盘上的扫描码有可能不同。键盘控制器就是将这个扫描码传给计算机,然后交给键盘驱动程序。键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码。什么是虚拟码呢?因为扫描码与硬件相关,不具有通用性,为了统一键盘上所有键的编码,于是就提出了虚拟码概念。无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键A的虚拟码是65,写成16进制就是&H41,注意,人们经常用16进制来表示虚拟码。当键盘驱动程序把扫描码转换为虚拟码后,会把这个键盘操作的扫描码和虚拟码还有其它信息一起传递给操作系统。然后操作系统则会把这些信息封装在一个消息中,并把这个键盘消息插入到消息列队。最后,要是不出意外的话,这个键盘消息最终会被送到当前的活动窗口那里,活动窗口所在的应用程序接收到这个消息后,就知道键盘上哪个键被按下,也就可以决定该作出什么响应给用户了。这个过程可以简单的如下表示:
  
用户按下按键-----键盘驱动程序将此事件传递给操作系统-----操作系统将键盘事件插入消息队列-----键盘消息被发送到当前活动窗口

查看更多...

分类:Win编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5786

比较VB.NET的And和C#的&&

先看两个例子:

VB.NET:
Function condition1() As Boolean
    Response.Write("condition1")

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4673

什么是钩子函数

WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过"钩挂",您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做"钩子函数",当每次发生您感兴趣的事件时,WINDOWS都将调用该函数。一共有两种类型的钩子:局部的和远程的。

·局部钩子仅钩挂您自己进程的事件。
·远程的钩子还可以将钩挂其它进程发生的事件。

查看更多...

分类:Win编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4473

C#键盘按键监视

InterceptKeys.cs:
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;

查看更多...

分类:Win编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 11699

C#设置全局热键

Hotkey.cs:
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Windows.Forms;

查看更多...

分类:Win编程 | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 6046

GIF文件格式

6.2.1 简介

GIF(Graphics Interchange Format)是CompuServe公司开发的图像文件存储格式,1987年开发的GIF文件格式版本号是GIF87a,1989年进行了扩充,扩充后的版本号定义为GIF89a。

GFI图像文件以数据块(block)为单位来存储图像的相关信息。一个GIF文件由表示图形/图像的数据块、数据子块以及显示图形/图像的控制信息块组成,称为GIF数据流(Data Stream)。数据流中的所有控制信息块和数据块都必须在文件头(Header)和文件结束块(Trailer)之间。

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4935

在页面中给swf添加链接

广告商那边提供了一些swf素材让我们制作广告代码,在代码中点击swf时需打开一个页面,由于广告商未提供fla格式文件,我们只能想办法在页面代码中给swf添加链接,最开始想到的是在swf外添加一个<a>:

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

查看更多...

分类:HTML/CSS | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 11154

C#获取Unix时间戳

Unix时间戳是指从1970-01-01 00:00:00开始到某个时间所经历的秒数,C#没有相关方法直接获取,网上搜了两个相关方法:

/// <summary>
/// Unix时间戳转成时间
/// </summary>

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8557
Windows服务中有一全局变量,Windows服务停止、启动对全局变量会有什么影响?重新初始化?还是仍保持原先的值?做个测试:

Windows服务代码:
using System;
using System.Collections.Generic;

查看更多...

分类:Win编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5402

C#获取应用程序路径几种方法

下边两个属性都可以获取应用程序路径:

·System.AppDomain.CurrentDomain.BaseDirectory
·System.Windows.Forms.Application.StartupPath

查看更多...

分类:Win编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4395