Seite 1 von 1

Name der Workstation?

Verfasst: Fr, 25. Nov 2011 15:06
von Magic
Hi,

führe gerade Änderungen im Uralt Programm durch :roll:
Wie kriege ich unter Clipper den Namen / Bezeichnung der Wirkstation raus :?:
Funktion? Tools?

Vielen Dank schon mal im Voraus!

Re: Name der Workstation?

Verfasst: Fr, 25. Nov 2011 15:21
von Bertram Hansen
Hallo Magic,

versuch es mal mit:
NETNAME() -> gibt den Namen der Workstation, unter dem sie im Netz bekannt ist, als Zeichenkette aus bis zu 15 Zeichen zurück. Wenn dieser Name nicht definiert wurde oder wenn die Programmumgebung kein IBM PC Netzwerk ist, gibt die Funktion eine leere Zeichenkette ("") zurück.

Re: Name der Workstation?

Verfasst: Fr, 25. Nov 2011 16:15
von Tom
Das Kommandozeilentool "SET" liefert alle Environment-Variablen, darunter "COMPUTERNAME", also den Namen der Workstation. Wenn man z.B. "SET > SETTINGS.TXT" ausführen lässt, entsteht eine Datei "SETTINGS.TXT", die alle Variablen enthält. Die kann man dann analysieren, was auch noch mit Clipper möglich sein dürfte. Keine Ahnung, ob Clipper ansonsten Funktionen für Environment-Variablen kennt, aber möglich isses.

Re: Name der Workstation?

Verfasst: Fr, 25. Nov 2011 16:51
von adrian
Bei uns sieht dies wie folgt aus:

Code: Alles auswählen

sName := UPPER(GETENV(IF("RDP-TCP"$UPPER(GETENV("SESSIONNAME")),"CLIENTNAME","COMPUTERNAME")))
Dadurch wird dies auch bei Remotedesktop korrekt ausgegeben.

adrian

Re: Name der Workstation?

Verfasst: Fr, 25. Nov 2011 19:15
von AUGE_OHR
Bertram Hansen hat geschrieben:versuch es mal mit:
NETNAME()
richtig ... aber es ist kein Xbase++ Funktion ;)

Code: Alles auswählen

#include "DLL.CH"

PROC MAIN
CLS
a := NETNAME()
? a
RETURN

FUNCTION NETNAME()
  LOCAL nDll, cName:= SPACE(255), nSize:= 255, cReturn:=''
  nDll := DllLoad("kernel32.dll")
  IF nDll <> 0
    IF !EMPTY(DllCall(nDll,DLL_STDCALL,"GetComputerNameA",@cName,@nSize))
      cReturn:= LEFT(cName,nSize)
    ENDIF
    DllUnload( nDll )
  ENDIF
RETURN(cReturn)
p.s. "COMPUTERNAME" aus dem Environment auszulesen funktioniert ... aber das kann der User "ändern" ...

Re: Name der Workstation?

Verfasst: Sa, 26. Nov 2011 10:05
von Tom
@Jimmy: Geht ja auch um Clipper. Deshalb findet die Diskussion auch im Clipper-Unterforum statt. :wink:

Re: Name der Workstation?

Verfasst: Sa, 26. Nov 2011 20:33
von AUGE_OHR
Tom hat geschrieben:@Jimmy: Geht ja auch um Clipper. Deshalb findet die Diskussion auch im Clipper-Unterforum statt. :wink:
uuuuupppssss ... ok unter Cl*pper gibt es schon Netname() "fertig".

Re: Name der Workstation?

Verfasst: Mo, 28. Nov 2011 9:13
von Magic
Guten Morgen!

NETNAME() ist für mein Anliegen das Richtige.

Danke :!:

Re: Name der Workstation?

Verfasst: Mi, 21. Mär 2012 14:32
von Werner_Bayern
Servus Adrian,

super Lösung, top! =D>
Danke.
adrian hat geschrieben:sName := UPPER(GETENV(IF("RDP-TCP"$UPPER(GETENV("SESSIONNAME")),"CLIENTNAME","COMPUTERNAME")))