Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > как определить терминальный режим?


Автор: lexx67 20.9.2006, 08:57
как определить, что я работаю на локальной машине или в терминальном режиме.
подскажите плиз...smile

Автор: Snowy 20.9.2006, 09:33
Человек подключается турминально к удалённому рабочему столу.
Запускает программу.
Как программе узнать - запущена она локально или удалённо.
Так понятней?

Автор: lexx67 20.9.2006, 10:36
Цитата(Snowy @ 20.9.2006,  09:33)
Человек подключается турминально к удалённому рабочему столу.
Запускает программу.
Как программе узнать - запущена она локально или удалённо.
Так понятней?

угу, совершенно верно....smile)

Автор: Snowy 20.9.2006, 11:34
Так. Основательно поковырялся в MSDN.
Нашёл.
Делается вообще элементарно:
Код

  if GetSystemMetrics($1000) = 0 then локальное подключение
  else терминальное подключение


Добавлено @ 11:36 
Вот фрагмент из MSDN:
Цитата
Detecting the Terminal Services Environment
To optimize performance, it is good practice for applications to detect whether they are running in a Terminal Services client session. For example, when an application is running on a remote session, it should eliminate unnecessary graphic effects, as described in Graphic Effects. If the user is running the application in a console session (directly on the terminal), it is not necessary for the application to optimize its behavior.

The following code sample shows a function that returns TRUE if the application is running in a remote session and FALSE if the application is running on the console. It works only on Windows 2000 and later. 
Код
BOOL IsRemoteSession(void)
{
   return GetSystemMetrics( SM_REMOTESESSION );
}

Еле нашёл чему равно SM_REMOTESESSION smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)