vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · Netzwerk   |   VB-Versionen: VB4, VB5, VB608.07.01
Aufruf von Netzlaufwerk aus verhindern

Ein kleiner Trick und Ihre Anwendung lässt sich nicht mehr von einem Netzlaufwerk aus starten.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  19.541 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

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

Ü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-2024 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