コード例 #1
0
ファイル: WtsApi.cs プロジェクト: luigilink/LdapQueryAnalyzer
 internal static extern int WTSSetUserConfig([MarshalAs(UnmanagedType.LPTStr)]
                                             string pServerName,
                                             [MarshalAs(UnmanagedType.LPTStr)]
                                             string pUserName,
                                             WTS_CONFIG_CLASS WTSConfigClass,
                                             IntPtr pBuffer,
                                             long DataLength);
コード例 #2
0
ファイル: WtsApi.cs プロジェクト: luigilink/LdapQueryAnalyzer
        public object GetFieldValue(WTS_CONFIG_CLASS fieldId)
        {
            object ret = null;

            ret = Values[fieldId];

            return(ret);
        }
コード例 #3
0
ファイル: WTSAPI32.cs プロジェクト: Sphere10/Framework
 public static extern bool WTSSetUserConfig(
     [MarshalAs(UnmanagedType.LPTStr)]
     string pServerName,
     [MarshalAs(UnmanagedType.LPTStr)]
     string pUserName,
     WTS_CONFIG_CLASS WTSConfigClass,
     [MarshalAs(UnmanagedType.LPTStr)]
     string pBuffer,
     uint dataLength);
コード例 #4
0
ファイル: WtsApi.cs プロジェクト: luigilink/LdapQueryAnalyzer
        public static string SetFieldValue(string dcName, string sAMAccountName, WTS_CONFIG_CLASS fieldID, object value, out bool success)
        {
            success = false;

            string ret = String.Format("Result setting {0} : ", fieldID.ToString());

            long datalength = Marshal.SizeOf(value.GetType());

            GCHandle buffer = GCHandle.Alloc(value);

            int rc = WTSSetUserConfig(dcName, sAMAccountName, fieldID, (IntPtr)buffer, datalength);


            return(ret);
        }
コード例 #5
0
ファイル: WtsApi.cs プロジェクト: luigilink/LdapQueryAnalyzer
        private object DecodeField(WTS_CONFIG_CLASS fieldId)
        {
            object ret = null;

            IntPtr pbuffer = IntPtr.Zero;
            long   psize   = 0;

            int rc = WTSQueryUserConfig(DC, User, (int)fieldId, out pbuffer, out psize);

            ret = MarshalField(fieldId, pbuffer);

            if (pbuffer != IntPtr.Zero)
            {
                WTSFreeMemory(pbuffer);
            }

            return(ret);
        }
コード例 #6
0
ファイル: WTSAPI32.cs プロジェクト: Sphere10/Framework
 public static extern bool WTSQueryUserConfig(
     [MarshalAs(UnmanagedType.LPTStr)] string pServerName,
     [MarshalAs(UnmanagedType.LPTStr)] string pUserName,
     WTS_CONFIG_CLASS WTSConfigClass,
     StringBuilder ppBuffer,
     out uint pBytesReturned);
コード例 #7
0
 public static extern bool WTSQueryUserConfig(string pServerName, string pUserName, WTS_CONFIG_CLASS configClass, Char[] ppBuffer, ref int pBytesReturned);
コード例 #8
0
 public static extern bool WTSSetUserConfig(string pServerName, string pUserName, WTS_CONFIG_CLASS WTSConfigClass, Char[] pBuffer, int DataLength);
コード例 #9
0
ファイル: WtsApi.cs プロジェクト: luigilink/LdapQueryAnalyzer
        private object MarshalField(WTS_CONFIG_CLASS fieldId, IntPtr pBuffer)
        {
            object ret = null;

            switch (fieldId)
            {
            case WTS_CONFIG_CLASS.AllowLogonTerminalServer:
            case WTS_CONFIG_CLASS.DeviceClientDefaultPrinter:
            case WTS_CONFIG_CLASS.DeviceClientDrives:
            case WTS_CONFIG_CLASS.DeviceClientPrinters:
            case WTS_CONFIG_CLASS.InheritInitialProgram:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = false;
                }

                else
                {
                    ret = Convert.ToBoolean(Marshal.ReadInt16(pBuffer));
                }

                break;

            case WTS_CONFIG_CLASS.InitialProgram:
            case WTS_CONFIG_CLASS.ModemCallbackPhoneNumber:
            case WTS_CONFIG_CLASS.TerminalServerHomeDir:
            case WTS_CONFIG_CLASS.TerminalServerHomeDirDrive:
            case WTS_CONFIG_CLASS.TerminalServerProfilePath:
            case WTS_CONFIG_CLASS.WorkingDirectory:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.PtrToStringUni(pBuffer);

                    if (ret.ToString().Length == 0)
                    {
                        ret = "<not set>";
                    }
                }

                break;

            case WTS_CONFIG_CLASS.TimeoutSettingsConnections:
            case WTS_CONFIG_CLASS.TimeoutSettingsDisconnections:
            case WTS_CONFIG_CLASS.TimeoutSettingsIdle:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.ReadInt64(pBuffer);
                }

                break;

            case WTS_CONFIG_CLASS.BrokenTimeoutSettings:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.ReadInt32(pBuffer);

                    ret = (WTS_BROKEN_TIMEOUT)ret;
                }

                break;

            case WTS_CONFIG_CLASS.ModemCallbackSettings:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.ReadInt32(pBuffer);

                    ret = (WTS_USER_MODEM_CALLBACK)ret;
                }

                break;

            case WTS_CONFIG_CLASS.ShadowingSettings:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.ReadInt32(pBuffer);

                    ret = (WTS_USER_SHADOWNG)ret;
                }

                break;

            case WTS_CONFIG_CLASS.ReconnectSettings:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.ReadInt32(pBuffer);

                    ret = (WTS_RECONNECT)ret;
                }

                break;

            case WTS_CONFIG_CLASS.TerminalServerRemoteHomeDir:

                if (pBuffer == IntPtr.Zero)
                {
                    ret = "<not set>";
                }

                else
                {
                    ret = Marshal.ReadInt32(pBuffer);

                    ret = (WTS_REMOTE_HOMEDIR)ret;
                }

                break;
            }



            return(ret);
        }
コード例 #10
0
ファイル: WtsAPI32Methods.cs プロジェクト: Wiladams/NewTOAPIA
 public static extern bool WTSQueryUserConfig(string pServerName, string pUserName, WTS_CONFIG_CLASS configClass, Char[] ppBuffer, ref int pBytesReturned);
コード例 #11
0
ファイル: WtsAPI32Methods.cs プロジェクト: Wiladams/NewTOAPIA
 public static extern bool WTSSetUserConfig(string pServerName, string pUserName, WTS_CONFIG_CLASS WTSConfigClass, Char[] pBuffer, int DataLength);