08. maj 2000 - 13:32
Der er
7 kommentarer og
1 løsning
Åben dokument fra listbox
Hejsa
Jeg har en db med nogle navne på nogle word/wp/works filer.
De bliver vist i en listbox i mit program.
Hvordan åbner jeg dokumentet i dets respektive program ved, at dobbeltklikke på det?
Kan man evt. lave, så et højreklik bringer en menu op som i explorer - hvor man så kan vælge mellem de skriveprogrammer man har?
Venligst
Kasper
Hej Kasper
Jeg ved ikke om det er det her du mener men Du kan lave en popupmenu til dit program
du laver en et menupunkt der hedder:
Name : Open
MenuName :MenuOpen
også lav den usynlig.
også lave de undermenuer der skal være og de skal være synlige.
også under Private Sub Listbox1_MouseDown(Button as integer)
if button = 2 then
popupmenu MenuOpen
end if
End sub
For at starte programmet
skal du skrive denne kode under det menupunkt det skal startes fra.
---------------------------------------
Dim I
I = shell("Filenavn.exe " & list1.Text,1)
Ved godt det måske ikke lige var det bedste forklaring, Men håber den hjalp dig lidt.
ellers er du velkommen til at skrive til Mix@post6.tele.dk
Hilsen
M.I.X
Hej Kasper
Jeg ved ikke om det er det her du mener men Du kan lave en popupmenu til dit program
du laver en et menupunkt der hedder:
Name : Open
MenuName :MenuOpen
også lav den usynlig.
også lave de undermenuer der skal være og de skal være synlige.
også under Private Sub Listbox1_MouseDown(Button as integer)
if button = 2 then
popupmenu MenuOpen
end if
End sub
For at starte programmet
skal du skrive denne kode under det menupunkt det skal startes fra.
---------------------------------------
Dim I
I = shell("Filenavn.exe " & list1.Text,1)
Ved godt det måske ikke lige var det bedste forklaring, Men håber den hjalp dig lidt.
ellers er du velkommen til at skrive til Mix@post6.tele.dk
Hilsen
M.I.X
P.S
tdaugaard >> Nåå joo takker.
Engberg>>
Med henblik på Menuen så hopper den op ved siden af mussen.
Ja du kan godt hente via registreingsdatabasen, men det kræver du ved hvad nøglen hedder.
Hvorfor lader du ikke selv brugeren vælge programmet. det kunne tænkes brugeren ville bruger ms-word istedet.
Men sådan læser du i registringsdatabasen
------skriv i et module----------------
Option Explicit
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32" 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, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_EXPAND_SZ = 2 ' Unicode nul terminated string
Const REG_DWORD = 4 ' 32-bit number
' Reg Create Type Values...
Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted
' Reg Key Security Options...
Const READ_CONTROL = &H20000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Const KEY_EXECUTE = KEY_READ
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
' Reg Key ROOT Types...
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
' Return Value...
Const ERROR_NONE = 0
Const ERROR_BADKEY = 2
Const ERROR_ACCESS_DENIED = 8
Const ERROR_SUCCESS = 0
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String) As String
Dim i As Long
Dim rc As Long
Dim hKey As Long
Dim hDepth As Long '
Dim sKeyVal As String
Dim lKeyValType As Long Dim tmpVal As String
Dim KeyValSize As Long
rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError
tmpVal = String$(1024, 0)
KeyValSize = 1024
rc = RegQueryValueEx(hKey, SubKeyRef, 0, _
lKeyValType, tmpVal, KeyValSize)
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError
tmpVal = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1)
Select Case lKeyValType Case REG_SZ, REG_EXPAND_SZ sKeyVal = tmpVal Case REG_DWORD Data Type
For i = Len(tmpVal) To 1 Step -1
sKeyVal = sKeyVal + Hex(Asc(Mid(tmpVal, i, 1)))
Next
sKeyVal = Format$("&h" + sKeyVal)
Double Word To String
End Select
GetKeyValue = sKeyVal rc = RegCloseKey(hKey) Exit Function
GetKeyError:Error Has Occured...
GetKeyValue = vbNullString rc = RegCloseKey(hKey) End Function
---------------------------------------
Lad os sige nøglen ligger i
HKEY_LOCAL_MACHINE\Software\Works\word
og nøglen hedder "program"
Så Skriv i din Form
Dim ProgramSti as String
ProgramSti = GetKeyValue(HKEY_LOCAL_MACHINE,"Software\Works\", ""program")