二級VB輔導(dǎo):用VB實現(xiàn)“一點即填”

字號:

在申請 Email 信箱、主頁空間時我們經(jīng)常要填寫表 單,比如要填姓名、住址、身份證號、E-mail 地址、個人 簡介等等??每次都重復(fù)的填寫,好煩哪!
    面對這種情況,大家可能首先想到的是上網(wǎng)上找一款 填表軟件。但現(xiàn)有的軟件不是用剪貼板傳遞就是采用拖放技 術(shù),而且使用時必須運行填表軟件,使用起來并不是很方便。 因此我們決定自己編寫一個軟件,將它集成到IE的右鍵菜單 里,使用時只要在要輸入的輸入項上單擊鼠標(biāo)右鍵,然后選 擇相應(yīng)的項即會自動輸入,從而實現(xiàn)“一點即填”。
    本程序首先要在IE的右鍵菜單上添加項目,這可通過 操作注冊表來實現(xiàn),然后利用一個JavaScript程序判斷所選 的是不是可輸入框,如果是,將我們事先保存的數(shù)據(jù)填上。 下面介紹具體的實現(xiàn)過程。
    一、設(shè)計界面
    進入 VB,選擇“標(biāo)準(zhǔn) EXE”新建一工程,選擇“工 程”菜單下的“部件”,在彈出的對話框中選擇“Microsoft Windows Common Controls 6.0”,然后按照下表在窗體 上添加控件,設(shè)置完成的界面如圖 1 所示:
    控件類型 Name 屬性
    標(biāo)簽 label1 Caption:名稱 標(biāo)簽 label2 Caption:內(nèi)容 文本框 txtname
    文本框 txtcont
    命令按鈕 command1 Caption:添加 命令按鈕 command2 Caption:刪除 列表框 listview1 為它加入兩個列,列標(biāo)題分別為“名稱”和“內(nèi)容”,并
    且把 View 屬性修改成 3-lvwReport,把 GridLines 改成 True。
    二、程序源代碼
    首先在工程中添加一個標(biāo)準(zhǔn)模塊并輸入如下代碼,這 些代碼用于注冊表操作:
    ’聲明必要的API函數(shù)及常量
    Declare Function RegSaveKey Lib "advapi32.dll" Alias
    "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal lpSecurityAttributes As Long) As Long
    Declare Function RegSetValue Lib "advapi32.dll" Alias
    "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey
    As Long) As Long
    Declare Function RegCreateKey Lib "advapi32.dll" Alias
    "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As
    String, phkResult As Long) As Long
    Declare Function RegDeleteKey Lib "advapi32.dll" Alias
    "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As
    String) As Long
    Declare Function RegDeleteValue Lib "advapi32.dll" Alias
    "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName
    As String) As Long
    Declare Function RegOpenKey Lib "advapi32.dll" Alias
    "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As
    String, phkResult As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32.dll" Alias
    "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias
    "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_USERS = &H80000003
    Public Const ERROR_NO_MORE_ITEMS = 259&
    Public Const HKEY_CURRENT_CONFIG = &H80000005
    Enum ValueType
    REG_NONE = 0
    REG_SZ = 1
    REG_EXPAND_SZ = 2
    REG_BINARY = 3
    REG_DWORD = 4
    REG_DWORD_BIG_ENDIAN = 5
    REG_MULTI_SZ = 7
    End Enum
    Global Const KEY_ALL_ACCESS = &H3F Dim lngtype As Long
    Dim rtn As Long, lBuffer As Long, sbuffer As String
    Dim lBufferSize As Long
    ’新建主鍵的過程