PDA

Vollständige Version anzeigen : Speicherort einer Prorgrammbibliothek


Mathias
13.12.2000, 21:31
Hallo,

ich möchte gerne den Speicherort der Programmbibliothek von Outlook aus der Registry auslesen. Könnte mir jemand mit einem (möglichst vollständigem) Code-Beispiel helfen? Im voraus vielen Dank.

Grüße
Mathias

Mike
14.12.2000, 11:25
Hallo Mathias,
versuch's doch mal mit dem Verweis (Im einem Modul: Menü Extras/Verweise) auf 'Microsoft Outlook 8.0 Object Library'. Damit hast du direkten Zugriff von Access aus.

Mathias
14.12.2000, 14:53
Hallo Mike,
genau um die Bibliothek geht es. Da nicht bei allen Rechnern auf unserem Netzwerk Outlook installiert ist, muß beim Öffnen der DB per VBA geprüft werden, ob die Programmbibliothek vorhanden ist und dann in Laufzeit ein entsprechender Verweis gesetzt werden. Da Outlook nicht bei jedem Rechner in anderen Verzeichnissen stehen kann, läßt sich das Vorhandensein nur zuverlässig über das Auslesen der Registry überprüfen. Dafür suche ich ein Beispiel.

Grüsse

Mathias

Mathias
14.12.2000, 16:48
Hat sich erledigt dank der Know-how.mdb von Klaus Oberdallhof

Mike
14.12.2000, 17:29
Hier noch eine weitere Möglichkeit:
'---Posted by Dev Ashish---
'
'Find the associated EXE file
'
'(Q) How can I find out the complete path to an executable?
'
'(A) Pass the filename (not the exe file, but the document file) and its location to this function.

'*********** Code Start ************
Const cMAX_PATH = 260
Const ERROR_NOASSOC = 31
Const ERROR_FILE_NOT_FOUND = 2&
Const ERROR_PATH_NOT_FOUND = 3&
Const ERROR_BAD_FORMAT = 11&
Const ERROR_OUT_OF_MEM = 0

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

Function fFindEXE(stFile As String, stDir As String) As String
'Usage Example:
' ?fFindEXE("test.xls","c:\temp")
'
Dim lpResult As String
Dim lngRet As Long

lpResult = Space(cMAX_PATH)
lngRet = apiFindExecutable(stFile, stDir, lpResult)

If lngRet > 32 Then
fFindEXE = lpResult
Else
Select Case lngRet:
Case ERROR_NOASSOC: fFindEXE = "Error: No Association"
Case ERROR_FILE_NOT_FOUND: fFindEXE = "Error: File Not Found"
Case ERROR_PATH_NOT_FOUND: fFindEXE = "Error: Path Not Found"
Case ERROR_BAD_FORMAT: fFindEXE = "Error: Bad File Format"
Case ERROR_OUT_OF_MEM: fFindEXE = "Error: Out of Memory"
End Select
End If
End Function