Avatar billede puppetmaster Nybegynder
08. april 2002 - 09:39 Der er 2 kommentarer og
1 løsning

Bruge VB til at bestemme om MS Access er installeret

Hvordan gør man det?
(forestiller mig noget a la aflæsning af en nøgle i registreringsdatabasen...........sagen er den at access jo ikke behøver at være installeret i "standard" mappen)
Avatar billede lanstorp Nybegynder
08. april 2002 - 11:06 #1
Der er en api funktion, der bruger fil-extensionen som parameter og returner en string med det program, der er associeret til fil typen. Der returneres en tom string, hvis der ingen association findes (programmet findes nok heller ikke så). Kaldes med stringen MDB som parameter. Kan bare ikke huske hvad den funktion hedder....
Avatar billede lanstorp Nybegynder
08. april 2002 - 11:14 #2
Måske var det denne her:
Declare Function FindExecutable& Lib "shell32.dll" Alias "FindExecutableA"
(ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String)

-Har ikke selv prøvet det...
Avatar billede puppetmaster Nybegynder
08. april 2002 - 11:31 #3
Takker for skubbet i den rigtige retning.
Her er koden som "passer" til min brug:

Private Declare Function FindExecutable Lib _
    "shell32.dll" Alias "FindExecutableA" _
    (ByVal lpFile As String, ByVal lpDirectory _
    As String, ByVal lpResult As String) As Long

Private Declare Function GetTempFileName Lib _
    "kernel32" Alias "GetTempFileNameA" (ByVal _
    lpszPath As String, ByVal lpPrefixString _
    As String, ByVal wUnique As Long, ByVal _
    lpTempFileName As String) As Long

Private Declare Function GetTempPath Lib _
    "kernel32" Alias "GetTempPathA" (ByVal _
    nBufferLength As Long, ByVal lpBuffer As _
    String) As Long

Public Function GetAssociatedExecutable(ByVal _
    Extension As String) As String

    Dim Path As String
    Dim FileName As String
    Dim nRet As Long
    Const MAX_PATH As Long = 260
   
    'Create a tempfile
    Path = String$(MAX_PATH, 0)
   
    If GetTempPath(MAX_PATH, Path) Then
        FileName = String$(MAX_PATH, 0)
   
        If GetTempFileName(Path, "~", 0, FileName) Then
            FileName = Left$(FileName, _
                InStr(FileName, vbNullChar) - 1)
       
            'Rename it to use supplied extension
            Name FileName As Left$(FileName, _
                InStr(FileName, ".")) & Extension
                FileName = Left$(FileName, _
                InStr(FileName, ".")) & Extension
       
            'Get name of associated EXE
            Path = String$(MAX_PATH, 0)
       
            Call FindExecutable(FileName, _
                vbNullString, Path)
            GetAssociatedExecutable = Left$( _
                Path, InStr(Path, vbNullChar) - 1)
       
            'Clean up
            Kill FileName
       
        End If
   
    End If

End Function
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester