Domino 9 und frühere Versionen > ND6: Administration & Userprobleme

VBA Feststellen, ob Datenbank vorhanden ist

<< < (3/3)

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