

                       VBForums -    ̳ 


                      .       
               


VBForums-̳:HTTP://hzsoft.yeah.net

ύʼMailTo:VBForums@usa.net?Subject=[VBForums]

нϵympang@bigfoot.com


ʣVB5Ĺ̳򣬰õ˵ҲCOMCTL32.OCX,
    ҲVB5ģWIN95SYSTEMļʲô
    ʹĳԵѵĻʹá



1:
    λVBսѡ
     Һã̸λƽɽʰԵʽɣ
     ȣʱֻӭСWIN95ʾʱȴ
     лл...!
2:
    VB5дĳСʱֻʾϵͳڣʾڣ

ش:
    ⶼйsystrayʾͼ⣬ڴһ𸴡
    ҪʵܣԼֱдһЩӡwww.microsoft.com
    KnowledgeBasesystrayѯͿԵõϸ˵ļ̣
    Ҽǲ̫ˣ
    http://members.xoom.com/whizkid/vb/ 
    http://www.freecode.com/internet.html 
    http://www.planet-source-code.com/vb/
    У鷳λԼȥҡξԼд̫鷳Ҳ
    ֳɵocxؼ www.download.com һ¡
                              
                                        - Prisoner 



ʣACCESSʲôܰһе׷ӵһ
    (ṹͬ),FOXPROеAPPEEND FROM ܡ
ѡȡԴƣճҪĿĿ
    ѡѡȡ׷ݵԭбˡ



:
    ã 
    ǸVBߣǳϲVB̵ķʵã ҲΪVBֵĪ
    š  ֳһ⣺ 
    ҪЩ"*.flc" or "*.fli"ʽ ĶԭVB3VB4
    õVBPLAY.VBXؼ ǳ㣬VB5ȴ޷ã
    ʾʾ ƺֻܵչΪ"*.ocx"Ŀؼ 
    ûVBPLAY.VBXOCXؼ
    ûVB5¿Բ"*.flc" or "*.fli"ʽؼ 
    ĸл 

                            -  My Email:Classroom@163.net 

:
    ʹ ActiveMovie ؼ,װ OSR2 汾 Win95,Ѿ
    .             - һ


ע(Registry)VBע


    WINDOWS 3.X £ϵͳӦóй״̬Ϣ.INIļʽ
ŵġWINDOWS 95/NT£е״̬Ϣڲϵͳṩע
(Registry)СͨעķʿԲʵֶԱػĹҲע
߽Ϻ͹
    עļһΣԲνṹ֯ݿ⣬Ϊļ
洢һҪűϵͳõݣͨSYSTEM.DATһ
ҪйָûϢUSER.DAT
    WINDOWS NTУעĸɣ
HKEY_CLASSES_ROOT  ϢرǶǶ루OLEļ
   ʹõϢfile association mappings
HKEY_USERS         бվûϢվϵû
   ͨãӦóȱʡúõȡ
HKEY_LOCAL_MACHINE  ˶ԸùվָϢӲͣ˿ӳ䣬
    ǰõȣԼϵͳá
HKEY_CURRENT_USERS  ûǰ¼ϵйϢϵͳͳ
    ãֵû¼ʱHKEY_USERӦ¼
    WINDOWS 95У⣬
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
    ֱ洢վĵǰӲԼ豸Ķ̬״̬PNPʵϣǰ
ߵHKEY_LOCAL_MACHINEһ߲עļһ֡
Ƕ̬ġ
    ÿע¶/ӼÿӼһֵÿֵ
֣ơͺֵֵУ
REG_SZ ַ
REG_DWORD  1-816ֵĴ
REG_BINARY 16ֵĴÿΪһֵֽ

    WINDOWS NTУֵͻ REG_EXPAND_SZ  REG_MULTI_SZǰ
REG_SZƣıɰ滻ı"ֵ"ÿ"ֵ"Ϊ
MULTI_SZĳɷݡWINDOWS 95УͻREG_LINK
    Ϊ˻һľhandleûʼעֱ
ҵָûͨҪд HKEY_CURRENT_USER Լ 
HKEY_LOCAL_MACHINEָѴڣûԵú RegOpenKey  
RegOpenKeyEx ҪµļRegCreateKeyRegCreateKeyEx
    ڻüľ󣬿йغȥгú޸ļֵ
׺Exĺֻܹ32λģʽ£׺ExĺԹ16
λ32λģʽ¡ע⣺еĺ׺Exĺ16λģʽݡEx
׺úԭе 16λϵһչڽָ 32λģʽ
ʹõĺEx׺
    ǿRegSetValueRegSetValueExüֵǰֻһӦһ
ֵҸüֵͱREG_SZһжֵҼ
ֵͲơ
    VB V4.0ע

1µļ
RegCreateKeyExѶļһһµļ

Private Sub CreateNewKey (sNewKeyName As String, lPredefinedKey_  As Long)
       Dim hNewKey As Long         '¼ľ
       Dim lRetVal As Long         'RegCreateKeyExؽ

       lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, _
    vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, _
hNewKey, _lRetVal)
       RegCloseKey (hNewKey)   'ر¼
End Sub

øú

   CreateNewKey "TestKey", HKEY_CURRENT_USER

HKEY_CURRENT_USER´һΪTestKey¼

øú

      CreateNewKey "TestKey\SubKey1\SubKey2", HKEY_LOCAL_MACHINE

HKEY_CURRENT_USER´ TestKey Ϊ׵Ƕ׵Ӽ
SubKey1 TestKey֮, SubKey3SubKey2֮¡   

ã޸ļֵ
һļֵ(name of the value)ֵ͡
ѴڵļָһֵԸı䵱ǰֵ

Private Sub SetKeyValue(sKeyName As String, sValueName As String,_ 
   vValueSetting As Variant, lValueType As Long)
       Dim lRetVal As Long         'SetValueExֵ
       Dim hKey As Long         'ľ

       'ָ
       lRetVal = RegOpenKeyEx(HKEY_CURRENT_USER, sKeyName, 0, _
KEY_ALL_ACCESS, hKey)
       lRetVal = SetValueEx(hKey, sValueName, lValueType, _
vValueSetting)
       RegCloseKey (hKey)
   End Sub

øú

   SetKeyValue "TestKey\SubKey1", "StringValue", "Hello", REG_SZ

HKEY_CURRENT_USERӼ  TestKey\SubKey1½һΪ
REG_SZ, ΪStringValueֵֵΪ"Hello"
ע⣺Ӽ"TestKey\SubKey1"ڣRegOpenKeyEx´
Ϊʹ RegCreateKeyEx ԻȡľһѾ
ڵļ    RegCreateKeyEx򿪸ü

3ȡֵ
QueryValueгָĳֵ

Private Sub QueryValue (sKeyName As String, sValueName As String)
       Dim lRetVal As Long         'APIֵ
       Dim hKey As Long         'ľ
       Dim vValue As Variant      'Ųѯı

       lRetVal = RegOpenKeyEx(HKEY_CURRENT_USER, sKeyName, 0, _
   KEY_ALL_ACCESS, hKey)
       lRetVal = QueryValueEx(hKey, sValueName, vValue)
       MsgBox vValue
       RegCloseKey (hKey)
End Sub

øú

   QueryValue "TestKey\SubKey1", "StringValue"

ʾΪTestKey\SubKey1ΪStringValueĵǰֵ
ѯļֵڣúʾ2'ERROR_BADKEY'

4API

Option Explicit

Global Const REG_SZ As Long = 1
Global Const REG_DWORD As Long = 4

Global Const HKEY_CLASSES_ROOT = &H80000000
Global Const HKEY_CURRENT_USER = &H80000001
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const HKEY_USERS = &H80000003

Global Const ERROR_NONE = 0
Global Const ERROR_BADDB = 1
Global Const ERROR_BADKEY = 2
Global Const ERROR_CANTOPEN = 3
Global Const ERROR_CANTREAD = 4
Global Const ERROR_CANTWRITE = 5
Global Const ERROR_OUTOFMEMORY = 6
Global Const ERROR_INVALID_PARAMETER = 7
Global Const ERROR_ACCESS_DENIED = 8
Global Const ERROR_INVALID_PARAMETERS = 87
Global Const ERROR_NO_MORE_ITEMS = 259

Global Const KEY_ALL_ACCESS = &H3F

Global Const REG_OPTION_NON_VOLATILE = 0

Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias _
"RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions _
As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes _
As Long, phkResult As Long, lpdwDisposition 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
Declare Function RegQueryValueExString Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As _
String, ByVal lpReserved As Long, lpType As Long, ByVal lpData _
As String, lpcbData As Long) As Long
Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As _
String, ByVal lpReserved As Long, lpType As Long, lpData As _
Long, lpcbData As Long) As Long
Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As _
String, ByVal lpReserved As Long, lpType As Long, ByVal lpData _
As Long, lpcbData As Long) As Long
Declare Function RegSetValueExString Lib "advapi32.dll" Alias _
"RegSetValueExA"(ByVal hKey As Long, ByVal lpValueName As String,_ 
ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As _
String, ByVal cbData As Long) As Long
Declare Function RegSetValueExLong Lib "advapi32.dll" Alias _
"RegSetValueExA"(ByVal hKey As Long, ByVal lpValueName As String,_ 
ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, _
ByVal cbData As Long) As Long

5úͲѯ

Public Function SetValueEx(ByVal hKey As Long, sValueName As _
String, lType As Long, vValue As Variant) As Long
    Dim lValue As Long
    Dim sValue As String
    Select Case lType
    Case REG_SZ
        sValue = vValue
        SetValueEx = RegSetValueExString(hKey, sValueName, 0&, _
lType, sValue, Len(sValue))
    Case REG_DWORD
        lValue = vValue
        SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, _
lType, lValue, 4)
    End Select
End Function

Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As _
String, vValue As Variant) As Long
    Dim cch As Long
    Dim lrc As Long
    Dim lType As Long
    Dim lValue As Long
    Dim sValue As String

    On Error GoTo QueryValueExError

    ' Determine the size and type of data to be read
    lrc = RegQueryValueExNULL(lhKey,szValueName, 0&, lType, 0&, cch)
    If lrc <> ERROR_NONE Then Error 5

    Select Case lType
    ' For strings
    Case REG_SZ:
sValue = String(cch, 0)
lrc = RegQueryValueExString(lhKey, szValueName, 0&,_
lType, sValue, cch)
      If lrc = ERROR_NONE Then
       vValue = Left$(sValue, cch)
      Else
         vValue = Empty
      End If
    ' For DWORDS
    Case REG_DWORD:
lrc = RegQueryValueExLong(lhKey, szValueName, 0&, _
lType, lValue, cch)
    If lrc = ERROR_NONE Then vValue = lValue
    Case Else
      'all other data types not supported
      lrc = -1
    End Select

QueryValueExExit:
    QueryValueEx = lrc
    Exit Function
QueryValueExError:
    Resume QueryValueExExit
End Function

⣬еʱûҪõֵֻĳָļֵ
ڣʱRegEnumKeyRegEnumKeyExRegEnumValueм⡣

                                       :ariel_cy@usa.net


                       ʽ

    ǷһMicrosoft Offices һͼʼճ
ǰܼ򵥣ֻҪWindows APIͿˡ
    ȣ㵱ȻҪȽһͨĴڣȻһЩݣ

    Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" _
       (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
       ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
       ByVal cy As Long, ByVal wFlags As Long) As Long
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1
    Public Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE

    ĳеʵط䣺
    success% = SetWindowPos(myform.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
    Ĵھͳǰˡ
    ȻҲ԰Ѵڻָԭͨ״̬
    success% = SetWindowPos(myform.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)

                                       :ariel_cy@usa.net


˶ http://server.com/WebApps/mail-list-unsubscribe.cgi?id=4093

