So finde ich heraus ob meine Anwendung auf einer lokalen Maschine, auf einem Terminalserver oder über RemoteDesktop läuft

    • VB.NET

    Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

      So finde ich heraus ob meine Anwendung auf einer lokalen Maschine, auf einem Terminalserver oder über RemoteDesktop läuft

      So finde ich heraus ob meine Anwendung auf einer lokalen Maschine, auf einem Terminalserver oder über RemoteDesktop läuft.
      Im Falle eines Terminalservers würde meine Software zur Demo werden, da meine Anwendung auf einem lokalen USB-Dongle zur Lizenzierung beruht. Sonst könnte jemand den USB-Dongle an den Terminalserver stecken und beliebig viele Kassenclients betreiben.

      VB.NET-Quellcode

      1. RemoteKennung = Environment.GetEnvironmentVariable("SESSIONNAME")
      2. If InStr(RemoteKennung, "RDP") And Microsoft.VisualBasic.Right(RemoteKennung, 2) <> "#0" Then
      3. 'RDP-Tcp#0 = Remote Desktop (1 User)
      4. 'RDP-Tcp#1-xxxx = jeder weitere User (Terminalserver)
      5. 'wenn die Software auf einem Terminalserver läuft dann:
      6. IstTerminalserver = True
      7. end if

      Liebe Grüße
      Roland Berghöfer

      Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

      @dive26 Meinst Du dies (Dein Titel ist VB.NET)?

      VB.NET-Quellcode

      1. Dim RemoteKennung As String = Environment.GetEnvironmentVariable("SESSIONNAME")
      2. Dim IstTerminalserver As Boolean = False
      3. If RemoteKennung.Contains("RDP") AndAlso Not RemoteKennung.EndsWith("#0") Then
      4. 'RDP-Tcp#0 = Remote Desktop (1 User)
      5. 'RDP-Tcp#1-xxxx = jeder weitere User (Terminalserver)
      6. 'wenn die Software auf einem Terminalserver läuft dann:
      7. IstTerminalserver = True
      8. End If
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      Hatte es eigentlich als Ergänzung unter einen anderen Post über VM gepostet Wusste nicht, dass es separat eingestellt wird.
      Ja natürlich die Variablen müssen initialisiert werden. Ich habe den Code nur von meiner SW rauskopiert.

      Die Variablendefinition (Public) findet bei mir in der Software in einem eigenem Modul statt, daher ist die in meinem Beispiel nicht zu sehen.

      Seh ich jetzt erst, danke für den Tipp. Benutze seit jeher instr$, left$ und right$. die .NET Variante ist aber kürzer = besser ;)
      Liebe Grüße
      Roland Berghöfer

      Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „dive26“ ()

      Was @RodFromGermany offenbar sagen wollte, ist dass es eine schönere VB.NET-Variante gibt (die er gepostet hat). Die Ursprungsversion ist recht VB6-lastig.
      Besucht auch mein anderes Forum:
      Das Amateurfilm-Forum

      Marcus Gräfe schrieb:

      Die Ursprungsversion ist recht VB6-lastig.
      und außerdem Strict Off.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      Ja, da habt Ihr Recht
      Liebe Grüße
      Roland Berghöfer

      Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at