home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "Module1"
- Public Const READ_CONTROL = &H20000
- Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
- Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
- Public Const KEY_QUERY_VALUE = &H1
- Public Const KEY_SET_VALUE = &H2
- Public Const KEY_CREATE_SUB_KEY = &H4
- Public Const KEY_ENUMERATE_SUB_KEYS = &H8
- Public Const KEY_NOTIFY = &H10
- Public Const KEY_CREATE_LINK = &H20
- Public Const SYNCHRONIZE = &H100000
- Public Const STANDARD_RIGHTS_ALL = &H1F0000
- Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
- KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) _
- And (Not SYNCHRONIZE))
- Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or _
- KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
- Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or _
- KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY _
- Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) _
- And (Not SYNCHRONIZE))
- Public Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))
-
- Public Const ERROR_SUCCESS = 0&
-
- 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 RegQueryValueEx Lib "advapi32.dll" _
- Alias "RegQueryValueExA" (ByVal hKey As Long, _
- ByVal lpValueName As String, ByVal lpReserved As Long, _
- lpType As Long, lpData As Any, lpcbData As Long) As Long
- Declare Function RegCloseKey Lib "advapi32.dll" _
- (ByVal hKey As Long) As Long
-
- Function Getfiles() As String
- On Error GoTo errorhandler:
- Dim vwbtmp$
- Dim wbrows$
- Dim exeplace As Integer
- Dim lgnType As Long
-
-
- vwbtmp$ = sdaGetRegEntry("HKEY_CLASSES_ROOT", "." & Leifens1.Combo1.Text, "", lgnType)
- vwbtmp$ = Left$(vwbtmp$, (Len(vwbtmp$) - 1))
- vwbtmp$ = vwbtmp$ + "\shell\open\command"
- wbrows$ = sdaGetRegEntry("HKEY_CLASSES_ROOT", vwbtmp$, "", lgnType)
- exeplace = (InStr(LCase(wbrows$), ".exe"))
- wbrows$ = Left$(wbrows$, exeplace + 3)
- If Mid$(wbrows$, 1, 1) = Chr$(34) Then
- wbrows$ = Right$(wbrows$, (Len(wbrows$) - 1))
- End If
- Getfiles = wbrows$
-
- errorhandler:
- Exit Function
-
- End Function
-
-
- Function sdaGetRegEntry(strKey As String, _
- strSubKeys As String, strValName As String, _
- lngType As Long) As String
- On Error GoTo sdaGetRegEntry_Err
-
- Dim lngResult As Long, lngKey As Long
- Dim lngHandle As Long, lngcbData As Long
- Dim strRet As String
-
- Select Case strKey
- Case "HKEY_CLASSES_ROOT": lngKey = &H80000000
- Case "HKEY_CURRENT_CONFIG": lngKey = &H80000005
- Case "HKEY_CURRENT_USER": lngKey = &H80000001
- Case "HKEY_DYN_DATA": lngKey = &H80000006
- Case "HKEY_LOCAL_MACHINE": lngKey = &H80000002
- Case "HKEY_PERFORMANCE_DATA": lngKey = &H80000004
- Case "HKEY_USERS": lngKey = &H80000003
- Case Else: Exit Function
- End Select
-
- If Not ERROR_SUCCESS = RegOpenKeyEx(lngKey, _
- strSubKeys, 0&, KEY_READ, _
- lngHandle) Then Exit Function
-
- lngResult = RegQueryValueEx(lngHandle, strValName, _
- 0&, lngType, ByVal strRet, lngcbData)
- strRet = Space(lngcbData)
- lngResult = RegQueryValueEx(lngHandle, strValName, _
- 0&, lngType, ByVal strRet, lngcbData)
-
- If Not ERROR_SUCCESS = RegCloseKey(lngHandle) Then _
- lngType = -1&
-
- sdaGetRegEntry = strRet
-
- sdaGetRegEntry_Exit:
- On Error GoTo 0
- Exit Function
-
- sdaGetRegEntry_Err:
- lngType = -1&
- MsgBox Err & "> " & Error$, 16, _
- "GenUtils/sdaGetRegEntry"
- Resume sdaGetRegEntry_Exit
-
- End Function
-
-