Sicherlich kenn Sie das auch: Sie haben eine netzwerkfähige Anwendung erstellt, z.B. eine Adress-, Vereins oder Lagerverwaltung. Nun möchten Sie natürlich, daß der Anwender eine entsprechende Netzlizenz erwerben muss, um auf die gemeinsamen Datenbanken aus einem lokalen Netzwerk zugreifen zu können. Vorausetzung ist allerdings, daß in der Einzelplatzversion das Verzeichnis, in welchem die Datenbanken verwaltet werden, fest eingestellt ist. In der Netzwerkversion hingegen, kann der Anwender den Datenpfad frei einstellen. Nehmen wir an, der Anwender hat nur eine Einzelplatz-Lizenz erworben. Nun könnte er ja auf die Idee kommen, die Anwendung zunächst auf jeden Arbeitsplatz zu installieren, so daß auf den jeweiligen Arbeitsplätzen alle benötigten Systemdateien installiert und vorhanden sind. Starten tut der Anwender Ihre Anwendung aber über ein Netzlaufwerk! Dann haben Sie ein Problem: Da der Programmpfad (App.Path) nicht auf den jeweiligen Arbeitsplatz verweist, sondern immer auf das Verzeichnis, aus welchem der Programmaufruf erfolgte, ist somit der gemeinsame Zugriff auf die Datenbanken gewährt - und eben das wollten Sie doch verhindern! Ein kleiner Trick schafft hier Abhilfe: Beim Programmstart überprüfen Sie einfach, ob es sich bei dem Pfad, aus welchem die Anwendung gestartet wurde, um ein Netzlaufwerk handelt. Ist dies der Fall, zeigen Sie einen entsprechenden Hinweis mit der Aufforderung zum Erwerb der Netzwerk-Version. Und so geht's: Option Explicit ' zunbächst die benötigte API-Deklaration Private Declare Function GetDriveType Lib "kernel32" _ Alias "GetDriveTypeA" ( _ ByVal nDrive As String) As Long ' Prüfen, ob die Anwendung von einem Netzlaufwerk ' aufgerufen wurde Public Sub Main() Dim DriveType As Long Dim NoStart As Boolean ' Beginnt AppPath mit "\\", so wurde die ' Anwendung direkt auf einem anderen Rechner gestartet NoStart = (Left$(App.Path, 2) = "\\") If Not NoStart Then ' Laufwerks-Typ abfragen ' 4 = RemoteDrive (Netzlaufwerk) NoStart = (GetDriveType(left$(App.Path, 1) + ":\") = 4) End If If NoStart Then MsgBox "Die Anwendung muss lokal gestartet werden!" & _ vbCrLf & _ "Um die Anwendung in einem Netzwerk auszuführen, " & _ "müssen Sie eine Netzwerk-Lizenz erwerben!" End End If End Sub Dieser Tipp wurde bereits 19.274 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |