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.541 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Dezemeber 2024 Roland Wutzke MultiSort im ListView-Control Dieses Beispiel zeigt, wie sich verschiedene Sortierfunktionen für ein ListView Control realisieren lassen. sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
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. |