mirror of
https://github.com/immense/Remotely.git
synced 2025-10-26 11:27:15 +00:00
81 lines
2.3 KiB
C#
81 lines
2.3 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Remotely.Shared.Win32
|
|
{
|
|
public static class WTSAPI32
|
|
{
|
|
public static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;
|
|
|
|
public enum WTS_CONNECTSTATE_CLASS
|
|
{
|
|
WTSActive,
|
|
WTSConnected,
|
|
WTSConnectQuery,
|
|
WTSShadow,
|
|
WTSDisconnected,
|
|
WTSIdle,
|
|
WTSListen,
|
|
WTSReset,
|
|
WTSDown,
|
|
WTSInit
|
|
}
|
|
|
|
public enum WTS_INFO_CLASS
|
|
{
|
|
WTSInitialProgram,
|
|
WTSApplicationName,
|
|
WTSWorkingDirectory,
|
|
WTSOEMId,
|
|
WTSSessionId,
|
|
WTSUserName,
|
|
WTSWinStationName,
|
|
WTSDomainName,
|
|
WTSConnectState,
|
|
WTSClientBuildNumber,
|
|
WTSClientName,
|
|
WTSClientDirectory,
|
|
WTSClientProductId,
|
|
WTSClientHardwareId,
|
|
WTSClientAddress,
|
|
WTSClientDisplay,
|
|
WTSClientProtocolType,
|
|
WTSIdleTime,
|
|
WTSLogonTime,
|
|
WTSIncomingBytes,
|
|
WTSOutgoingBytes,
|
|
WTSIncomingFrames,
|
|
WTSOutgoingFrames,
|
|
WTSClientInfo,
|
|
WTSSessionInfo
|
|
}
|
|
|
|
|
|
[DllImport("wtsapi32.dll", SetLastError = true)]
|
|
public static extern int WTSEnumerateSessions(
|
|
System.IntPtr hServer,
|
|
int Reserved,
|
|
int Version,
|
|
ref System.IntPtr ppSessionInfo,
|
|
ref int pCount);
|
|
|
|
[DllImport("wtsapi32.dll", ExactSpelling = true, SetLastError = false)]
|
|
public static extern void WTSFreeMemory(IntPtr memory);
|
|
|
|
[DllImport("Wtsapi32.dll")]
|
|
public static extern bool WTSQuerySessionInformation(IntPtr hServer, uint sessionId, WTS_INFO_CLASS wtsInfoClass, out IntPtr ppBuffer, out uint pBytesReturned);
|
|
|
|
[DllImport("wtsapi32.dll", SetLastError = true)]
|
|
static extern IntPtr WTSOpenServer(string pServerName);
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct WTS_SESSION_INFO
|
|
{
|
|
public uint SessionID;
|
|
[MarshalAs(UnmanagedType.LPStr)]
|
|
public string pWinStationName;
|
|
public WTS_CONNECTSTATE_CLASS State;
|
|
}
|
|
}
|
|
}
|