하는 모든 사용자에 대한 시스템 시작시 응용 프로그램 실행을 확인한 다음 종료할지 여부를 결정하기 위해이 기능을 사용 :
#include <windows.h>
#include <winternl.h>
BOOL IsRunningOnTerminalServerClient(void)
{
PWINSTATIONQUERYINFORMATIONW WinStationQueryInformationW;
WINSTATIONINFORMATIONW wsInfo;
HINSTANCE hInstWinSta;
ULONG ReturnLen;
hInstWinSta = LoadLibraryA("winsta.dll");
if(hInstWinSta)
{
WinStationQueryInformationW = (PWINSTATIONQUERYINFORMATIONW)
GetProcAddress(hInstWinSta, "WinStationQueryInformationW");
if(WinStationQueryInformationW &&
WinStationQueryInformationW(SERVERNAME_CURRENT,
LOGONID_CURRENT,
WinStationInformation,
&wsInfo,
sizeof(wsInfo),
&ReturnLen) &&
(wsInfo.LogonId != 0))
{
FreeLibrary(hInstWinSta);
return(TRUE);
}
FreeLibrary(hInstWinSta);
}
return FALSE;
}
는 http://msdn.microsoft.com/en-us/library/aa383827(v=VS.85).aspx
에서 가져온이 가진 기존 응용 프로그램의 예를 제공 할 수 있습니다 행동? –
"데스크탑 트레이"와 같은 것은 없습니다 (http://blogs.msdn.com/b/oldnewthing/archive/2003/09/10/54831.aspx). * 작업 표시 줄 * (열린 창을 일반적으로 표시하는 곳)을 의미하거나 시계 옆에 작업 표시 줄 /의 알림 영역 * /을 의미합니다. 명확히하십시오. –
내 추측 : 응용 프로그램은 사용 가능한 모든 원격 세션에 트레이 알림 아이콘을 표시해야하지만 콘솔 세션에는 없음을 표시해야합니다. – ChristianWimmer