» Главная
eXcode.ru » Статьи » Delphi/Pascal » Большой FAQ по Delphi » Программа и Интерфейс » Процессы и Сервисы
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 33





Обнаружить терминальные сервисы




Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
 Question: 

 Do you happen to have a sample piece of code for detecting if Terminal 
 Services is loaded?  I found this piece of C code, but I′m having a hard 
 time translating things... 
}

 function IsRemoteSession: Boolean;
 const
   sm_RemoteSession = $1000; { from WinUser.h }
 begin
   Result := (GetSystemMetrics(sm_RemoteSession) <> 0);
 end;

 { 
  That tells you if your program is running in a terminal client session, 
  which is usually all you ever need to worry about. 
}

 { 
> 
> #include  
> #include  
> 
> // This code will only work on the Windows 2000 platform 
> 
> BOOL IsTerminalServicesEnabled(void) 
> { 
>      OSVERSIONINFOEX osVersionInfo; 
>      DWORDLONG dwlConditionMask = 0; 
> 
>      ZeroMemory(&osVersionInfo, sizeof(OSVERSIONINFOEX)); 
>      osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 
>      osVersionInfo.wSuiteMask = VER_SUITE_TERMINAL; 
> 
>      VER_SET_CONDITION( dwlConditionMask, VER_SUITENAME, VER_AND ); 
> 
>      return VerifyVersionInfo( 
>          &osVersionInfo, 
>          VER_SUITENAME, 
>          dwlConditionMask 
>          ); 
> 
}

 type
   OSVERSIONINFOEX = packed record
     dwOSVersionInfoSize: DWORD;
     dwMajorVersion: DWORD;
     dwMinorVersion: DWORD;
     dwBuildNumber: DWORD;
     dwPlatformId: DWORD;
     szCSDVersion: array[0..127] of Char;
     wServicePackMajor: WORD;
     wServicePackMinor: WORD;
     wSuiteMask: WORD;
     wProductType: BYTE;
     wReserved: BYTE;
   end;
   TOSVersionInfoEx = OSVERSIONINFOEX;
   POSVersionInfoEx = ^TOSVersionInfoEx;

 const
   VER_SUITE_TERMINAL = $00000010;
   VER_SUITENAME = $00000040;
   VER_AND = 6;

 function VerSetConditionMask(
   ConditionMask: int64;
   TypeMask: DWORD;
   Condition: Byte
   ): int64; stdcall; external kernel32;

 function VerifyVersionInfo(
   var VersionInformation: OSVERSIONINFOEX;
   dwTypeMask: DWORD;
   dwlConditionMask: int64
   ): BOOL; stdcall; external kernel32 name ′VerifyVersionInfoA′;


 function IsTerminalServicesEnabled: Boolean;
 var
   osVersionInfo: OSVERSIONINFOEX;
   dwlConditionMask: int64;
 begin
   FillChar(osVersionInfo, SizeOf(osVersionInfo), 0);
   osVersionInfo.dwOSVersionInfoSize := sizeof(osVersionInfo);
   osVersionInfo.wSuiteMask := VER_SUITE_TERMINAL;
   dwlConditionMask := 0;
   dwlConditionMask :=
     VerSetConditionMask(dwlConditionMask,
     VER_SUITENAME,
     VER_AND);
   Result := VerifyVersionInfo(
     osVersionInfo,
     VER_SUITENAME,
     dwlConditionMask);
 end;

 { 
  But heed the warning in the C sample: the functions used here are not 
  available on Win 9x and NT 4! If you use external declarations as above 
  your program would not even load on such a platform. 
}
К началу статьи





Добавил: LedWormДата публикации: 2005-11-10 15:18:48

Рейтинг статьи:0.00 [Голосов 0]Кол-во просмотров: 2872
Оцените статью:

Комментарии читателей

Всего комментариев: 121

2018-02-02 23:35:39
BrentonGag
Я надеюсь завтра будет...


-------
<a href=http://partnerskie-programmy.net/682-subakkaunty.html>субаккаунты</a>

2018-02-02 23:28:54
CharlesUsern
круть...инетересно было прочесть


------
<a href=http://zarabotat-v-internete.biz/513-kraud-marketing.html>сервисы крауд маркетинга</a>

2018-02-02 01:06:15
Davidpsync
Этот вариант мне не подходит.


------
<a href=https://cod-14.ru/pogoda>прогноз погоды в якутске</a> | https://cod-14.ru/

2018-02-02 01:02:33
JamesVek
По моему мнению Вы ошибаетесь. Давайте обсудим это. Пишите мне в PM, поговорим.


-----
<a href=https://cod45.ru/video>м видео курган</a> | https://cod45.ru/

2018-02-02 00:56:36
Donaldvor
Конечно, само собой разумеется.

------
<a href=https://cod28.ru/gorodskie-sobytiya>амуринфо благовещенск последние новости</a> | https://cod28.ru/

2018-02-02 00:50:53
BernardShoug
перебор)


------
<a href=https://cod58.ru/pogoda>погода в пензе</a> | https://cod58.ru/

2018-02-02 00:45:00
RafaelReuse
Это исключительно ваше мнение


------
<a href=https://cod22.ru/video>сайт м видео барнаул каталог</a> | https://cod22.ru/

2018-02-02 00:40:47
Roberttaith
Прошу прощения, это не совсем то, что мне нужно. Есть другие варианты?


-------
<a href=https://cod60.ru/proisshestviya>происшествия в пскове вчера</a> | https://cod60.ru/

2018-02-02 00:35:28
Glennbof
Между нами говоря, по-моему, это очевидно. Вы не пробовали поискать в google.com?

------
<a href=https://cod53.ru/video>м видео великий новгород каталог товаров</a> | https://cod53.ru/

2018-02-02 00:28:24
Carloshus
Малышки высший сорт!!!


-----
<a href=https://cod44.ru/probki>пробки кострома онлайн</a> | https://cod44.ru/
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какой ОПСОС лучше?
Megafon
27% (59)
MTS
22% (48)
Beeline
26% (58)
АТС
3% (6)
Тут таких нет ...
16% (36)
Я не пользуюсь телефоном.
6% (13)

Проголосовало: 220
Сидит компания инетчиков в кафешке, пиво пьют, отдыхают. Тут один шутит. Все молчат. Минуту молчат, две, три, не шевелясь. Наконец один из них смеется.
- Ты чего так долго молчал? - спрашивает рассказчик.
- Да коннект плохой, наладить не мог...
Рейтинг: 9/10 (1)
Посмотреть все анекдоты