Domino 9 und frühere Versionen > ND6: Administration & Userprobleme
VBA Feststellen, ob Datenbank vorhanden ist
Stefan5:
Hallo Roland
Ich muss etwas ausholen, ich habe eine Excel-Liste mit ca. 800 Links auf Dateien, Verzeichnisse, Internet- und Intranet-Seiten und eben auch LotusNotes-Datenbanken.
Nun habe ich die undankbare Aufgabe gekriegt ein VBA-Prozedur zu schreiben, die in der Lage ist, sämtliche Link-Arten quasi auf Validitiät zu prüfen. Das ist mir nun ordentlich gelungen bei Dateien, Verzeichnisse, Internet- und Intranet-Seiten. Und dank Eurer Hilfe nun sogar für LotusNotes Datenbanken. Die Püfung der Links auf LN Datenbanken ist nur ein "Teilprozedur". Die Prüfung, ob LotusNotes "ansprechbar" ist, müsste ganz am Anfang der Prozedur stehen. Bevor die Überprüfung startet, wird beispielsweise bislang geprüft, ob Internet aktiv ist.
Ich bräuchte also nur eine einfache Lösung (evt. auch mit Error-Handling), dass mir erlaubt den Anwender gleich nach dem Start der Prüfprozedur hinzuweisen, sich im LotusNotes anzumelden, sofern kein Zugriff besteht und dann würde die Prozedur sofort wieder abgebrochen. Das würde vollständig ausreichen. Eine Übergabe des Passwortes oder ähnliches ist nicht notwendig.
Wenn die Prüfung der LN Datenbanken erreicht ist, wäre eine Prüfung des LN Zugriffes bereits zu spät.
... übrigens den Code für LotusNotes konnte ich so lösen:
On Error resume next
if IsError(objLotusNotes.RESOLVE(strLink)) = true then
....
Else
...
End if
Geht ausgezeichnet..... genial ;D
eknori (retired):
Ich würde es so machen http://www.freevbcode.com/ShowCode.asp?ID=5166.
Wenn "Notes" respektive "notes.exe" geladen ist, dann läuft Notes.
Stefan5:
Vielen Dank für den Hinweis. Der ist sehr interessant. Ich habe es noch mit dem Computername-API ergänzt und teste mal so. Das könnte mir elegant auch beim InternetExplorer helfen. Genial
Grüsse
Stefan
Option Explicit
'Computername
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function IsProcessRunning(strServer, strProcess)
Dim Process, strObject
IsProcessRunning = False
strObject = "winmgmts://" & strServer
For Each Process In GetObject(strObject).InstancesOf("win32_process")
If UCase(Process.Name) = UCase(strProcess) Then
IsProcessRunning = True
Exit Function
End If
Next
End Function
Sub TEST()
Dim strComputer As String
Dim strProcess As String
strComputer = String(255, Chr$(0))
GetComputerName strComputer, 255
strComputer = Left$(strComputer, InStr(1, strComputer, Chr$(0)))
Do
strProcess = InputBox("Please enter the name of the process (for instance: explorer.exe)", "Input")
Loop Until strProcess <> ""
If (IsProcessRunning(strComputer, strProcess) = True) Then
MsgBox "Process " & strProcess & " is running on computer " & strComputer
Else
MsgBox "Process " & strProcess & " is NOT running on computer " & strComputer
End If
End Sub
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln