Get Blogged by JoKi

"The only frontiers are in your mind"
28 | 05 | 2017
Navigation
Meetup of MSCC
Our next meetup:
Latest Tweets

Most Read Articles
Article Time Line
About me
Family guy, geek, entrepreneur, software craftsman: Visual FoxPro, C#, SQL Server, MySQL, Linux consultant, conference speaker

Certificates & Awards

Microsoft Certified Professional

Microsoft Specialist - Programming in HTML5 with JavaScript and CSS3 Specialist

Get in touch

Sharing is caring

Recent books


Sponsoring
If you like the information on these pages, your support is highly appreciated.
Thank you very much!
Affiliates

 

Spacer for layout formatting

VFP Umgang mit Terminal Services

User Rating:★★★★★ / 1
PoorBest 
Community 18 March 2007 - 

Zusammenfassung einer Antwort aus der Newsgruppe microsoft.public.de.fox:

1. Wie kann das Programm feststellen, dass es in einer TS-Session läuft?

Mittels der Os() Funktion kannst du das ermitteln. Siehe VFP-Hilfe:

If Bittest(Val(Os(10)),4) Or Bittest(Val(Os(10)),8)
     *--- Running in TS environment...
     Sys(602,0)
EndIf

2. Wie kann das Programm feststellen, wie der Client-Rechner heisst?

GetEnv("CLIENTNAME")

3: Da Drucker und ggf. auch Laufwerke (z.B. Memory-Stick für Datensicherung) des Clients mit verwendet werden, müssten Client-abhängige Konfigurations-Dateien (z.Z. gibt es nur ein INI-File im Applikationsverzeichnis) verwendet werden. Wo und wie speichere ich die am besten?

Im Benutzerprofil - Home(7) zum Beispiel oder GetEnv("LocalAppData") bzw. GetEnv("AppData"). Außerdem kannst du die WIN32 API Funktion SHGetFolderPath verwenden:

#DEFINE CSIDL_MYDOCUMENTS 0x000c
#DEFINE CSIDL_LOCAL_APPDATA 0x001c

DECLARE SHORT SHGetFolderPath IN shell32;
 INTEGER   hwndOwner,;
 INTEGER   nFolder,;
 INTEGER   hToken,;
 INTEGER   dwFlags,;
 STRING  @ pszPath

LOCAL lcBuffer
lcBuffer = REPLICATE(CHR(0),254)
IF SHGetFolderPath(0, CSIDL_MYDOCUMENTS, 0, 0, @lcBuffer) = 0
   ? LEFT(lcBuffer,AT(CHR(0),lcBuffer)-1)
ENDIF

Weitere Konstanten für Ordner (CSIDL_*) findest du in der MSDN:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
(eine Zeile!)

4: Ich habe grad mal per TS-Session als Administrator eine Anwendungs-Installation auf dem Win2003-Server gemacht. Dabei ist mir aufgefallen, dass die Dateien, die normalerweise in WINDOWSSYSTEM32 installiert werden (msvcr71.dll usw.) jetzt in's Verzeichnis Dokumente und EinstellungenAdministratorWINDOWS gekommen sind und somit nicht für die anderen User zur Verfügung stehen. Wie lässt sich das umgehen?

Hast du den TS-Installmodus vorher aktiviert? Das geht entweder 'automatisch' über den visuellen Weg über Systemsteuerung : Software oder per Prompt:

CHANGE USER /INSTALL  
Enable install mode. This command has to be run before
                         installing any new software on a Terminal Server.
                         This will create a .ini file for the application
                         in the TS system directory.

CHANGE USER /EXECUTE  
Enable execute mode (default)
                         Run this when an installation is complete.

CHANGE USER /QUERY    
Display current settings.

Außerdem findest du hier eine nette Zusammenstellung an Fragen und Antworten zum Thema Terminal Services:

http://www.microsoft.com/technet/community/en-us/terminal/terminal_faq.mspx

Ich hoffe, dass dies einige Tipps fuer euch lieferte...

Bis denne, JoKi


blog comments powered by Disqus
 
Spacer for layout formatting