vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Datenbanken   |   VB-Versionen: VB.NET02.06.05
mySQL Server Status (.NET)

Prüfen, ob ein mySQL Server installiert ist und ob das Programm darauf zugreift

Autor:   Bacik Harald / Zero-G.Bewertung:     [ Jetzt bewerten ]Views:  12.924 
www.intelli-soft.atSystem:  WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Wenn man Anwendungen in einem kleinen Netzwerk installiert, kann es vorkommen, dass die Applikation sowohl auf dem Server, als auch auf den Clients läuft. Wie man herausfindet, ob der PC ein Client ist, oder doch der Server, das möchte ich euch mit dem nachfolgenden Tipp zeigen.

Zuerst fügen wir 2 Klassen zum Projekt hinzu.

Die Erste benennen wir myWMI und fügen folgenden Code ein. Zusätzlich wird noch die Referenz auf System.Management benötigt.

Imports System.Management
Imports System.Net
Imports System.Net.Sockets
 
Public Class myWMI
  Private objOS As ManagementObjectSearcher
  Private objCS As ManagementObjectSearcher
  Private objMgmt As ManagementObject
  Private m_strComputerName As String
  Private m_strManufacturer As String
  Private m_StrModel As String
  Private m_strOSName As String
  Private m_strOSVersion As String
  Private m_strSystemType As String
  Private m_strTPM As String
  Private m_strWindowsDir As String
 
  ' die IP Adresse ermitteln
  Private Addresslist() As IPAddress = _
    Dns.GetHostByName(Dns.GetHostName()).AddressList
  Private strIPAddress As String = Addresslist(0).ToString
 
  ' Initialisiereungs-Prozedur
  Public Sub New()
    objOS = New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
    objCS = New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
 
    For Each objMgmt In objOS.Get
      m_strOSName = objMgmt("name").ToString()
      m_strOSVersion = objMgmt("version").ToString()
      m_strComputerName = objMgmt("csname").ToString()
      m_strWindowsDir = objMgmt("windowsdirectory").ToString()
    Next
 
    For Each objMgmt In objCS.Get
      m_strManufacturer = objMgmt("manufacturer").ToString()
      m_StrModel = objMgmt("model").ToString()
      m_strSystemType = objMgmt("systemtype").ToString
      m_strTPM = objMgmt("totalphysicalmemory").ToString()
    Next
  End Sub
 
  ' Computername
  Public ReadOnly Property ComputerName() As String
    Get
      ComputerName = m_strComputerName
    End Get
  End Property
 
  ' Hersteller
  Public ReadOnly Property Manufacturer() As String
    Get
      Manufacturer = m_strManufacturer
    End Get
  End Property
 
  ' Modell
  Public ReadOnly Property Model() As String
    Get
      Model = m_StrModel
    End Get
  End Property
 
  ' Betriebssystem-Bezeichnung
  Public ReadOnly Property OsName() As String
    Get
      OsName = m_strOSName
    End Get
  End Property
 
  ' Betriebssystem-Version
  Public ReadOnly Property OSVersion() As String
    Get
      OSVersion = m_strOSVersion
    End Get
  End Property
 
  ' System-Typ
  Public ReadOnly Property SystemType() As String
    Get
      SystemType = m_strSystemType
    End Get
  End Property
 
  ' insgesamt verfügbarer physikalischer Speicher
  Public ReadOnly Property TotalPhysicalMemory() As String
    Get
      TotalPhysicalMemory = m_strTPM
    End Get
  End Property
 
  ' Windows-Verzeichnis
  Public ReadOnly Property WindowsDirectory() As String
    Get
      WindowsDirectory = m_strWindowsDir
    End Get
  End Property
 
  ' Eigene IP-Adresse
  Public ReadOnly Property myIPAdress() As String
    Get
      myIPAdress = strIPAddress
    End Get
  End Property
End Class

Aus diesem Code können wir mehrere Windows-interne Parameter abfragen. Für uns ist eigentlich nur die eigene IP Adresse wichtig.

Die zweite Klasse nennen wir mySQLServer. Dazu benötigen wir die Referenz auf System.ServiceProcess.

Public Class mySQLServer
  Public Const IsRunning As String = "Is Running"
  Public Const IsStopped As String = "Is Stopped"
  Public Const IsPaused As String = "Is Paused"
  Public Const IsNotInstalled As String = "Is Not Installed"
 
  Private myServiceController As System.ServiceProcess.ServiceController
 
  Public Function ServerStatus() As String
    ' Hier wird geschaut, ob der Server installiert ist
    Dim Server_Running As String
 
    myServiceController = New System.ServiceProcess.ServiceController("mySQL")
    Try
      Select Case myServiceController.Status
        Case Is = ServiceProcess.ServiceControllerStatus.Running
          Server_Running = IsRunning
        Case Is = ServiceProcess.ServiceControllerStatus.Stopped
          Server_Running = IsStopped
        Case Is = ServiceProcess.ServiceControllerStatus.Paused
          Server_Running = IsPaused
      End Select
    Catch
      Server_Running = IsNotInstalled
    End Try
 
    Return Server_Running
  End Function
 
  Public Function ConnectingToMyPC(ByVal ServerInformation As String) As Boolean
    ' Hier wird überprüft, ob das Programm auf diesen PC zugreift
    Dim myServer As Boolean
    Dim myWmi As New myWMI
 
    Select Case UCase(Trim(ServerInformation))
      Case Is = ""
        myServer = False
      Case Is = UCase(myWmi.ComputerName), "LOCALHOST", myWmi.myIPAdress
        myServer = True
      Case Else
        myServer = False
    End Select
 
    Return myServer
  End Function
End Class

Im Programm können wir dann beispielsweise den Parameter wie folgt abrufen:

Private Sub cmdServerButton_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles cmdServerButton.Click
 
  Dim myServer As New mySQLServer
 
  Select Case myServer.ServerStatus
    ' Wenn der Server läuft/auf Pause/oder gestoppt wurde
    Case Is = myServer.IsPaused, myServer.IsRunning, myServer.IsStopped
      ' Überprüfen, ob das Programm auch auf diesen PC zugreift
      If myServer.ConnectingToMyPC(GetSetting("VOptNeu", "Firmendaten", "Server")) = True Then
        MsgBox("Auf diesem PC ist ein mySQL Server installiert" & vbCrLf & _
          "Status: " & myServer.ServerStatus & vbCrLf & _
          "Das Programm versucht auf diesen Server zuzugreifen!", _
          MsgBoxStyle.Information, "mySQL Information")
      Else
        MsgBox("Auf diesem PC ist ein mySQL Server installiert" & vbCrLf & _
          "Status: " & myServer.ServerStatus & vbCrLf & _
          "Das Programm versucht NICHT auf diesen Server zuzugreifen!" & vbCrLf & _
          "Möglichkeit: Replikationsserver", _
          MsgBoxStyle.Information, "mySQL Information")
      End If
 
    Case Is = myServer.IsNotInstalled ' Wenn auf diesem PC kein Server installiert ist
      MsgBox("Auf diesem PC ist KEIN mySQL Server installiert!", _
        MsgBoxStyle.Information, "mySQL Information")
 
    Case Else
      MsgBox("ERROR!", MsgBoxStyle.Information, "mySQL Information")
  End Select
End Sub

Dieser Tipp wurde bereits 12.924 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel