|
Программирование >> Автоматически обновляемые приложения
SV TYPE NT = 0x00001000, SV TYPE WFW = 0x00002000, SV TYPE SERVER MFPN = 0x00004000, SV TYPE SERVER NT = 0x00008000, SV TYPE POTENTIAL BROWSER = 0x00010000, SV TYPE BACKUP BROWSER = 0x00020000, SV TYPE MASTER BROWSER = 0x00040000, SV TYPE DOMAIN MASTER = 0x00080000, SV TYPE SERVER OSF = 0x00100000, SV TYPE SERVER VMS = 0x00200000, SV TYPE WINDOWS = 0x00400000, SV TYPE DFS = 0x00800000, SV TYPE CLUSTER NT = 0x01000000, SV TYPE TERMINALSERVER = 0x02000000, SV TYPE CLUSTER VS NT = 0x04000000, SV TYPE DCE = 0x10000000, SV TYPE ALTERNATE XPORT = 0x20000000, SV TYPE LOCAL LIST ONLY = 0x40000000, SV TYPE DOMAIN ENUM = 0x80000000, SV TYPE ALL = OxFFFFFFFF, Получить список SQL-серверов public static ArrayList GetSQLServerList() SERVER INFO 101 si; IntPtr pInfo = IntPtr.Zero; int etriesread = 0; int totalentries = 0; ArrayList srvs = new ArrayList(); NERR err = NetServerEnum(null, 101, out pInfo, -1, ref etriesread, ref totalentries, SV 101 TYPES.SV TYPE SQLSERVER, null, 0); if ((err == NERR.NERR Success I I err == NERR.ERROR MORE DATA) && pInfo != IntPtr.Zero) int ptr = pInfo.ToInt320; for (int i = 0; i < etriesread; i++) si = (SERVER INFO 101)Marshal.PtrToStructure( new IntPtr(ptr), typeof(SERVER INFO 101)); srvs . Add (si . svl01 naine) ; Добавляем имя сервера в список ptr += Marshal.SizeOf(si) ; catch (Exception) finally { Освобождаем вьщеленную память if (pInfo != IntPtr.Zero) { NetApiBufferFree(pinfo); return (srvs); Получить список всех компьютеров public static ArrayList GetServerList(SV 101 TYPES type) ( SERVER INFO 101 si; IntPtr pinfo = IntPtr.Zero; mt etriesread = 0; int totalentries = 0; ArrayList srvs = new ArrayList(); NERR err = NetServerEnum (null, 101, out pinfo, -1, ref etriesread, ref totalentries, SV 101 TYPES. SV TYPE ALL, null, 0); if ((err == NERR.NERR Success I err == NERR.ERROR MORE DATA) && pinfo != IntPtr.Zero) int ptr = pInfo.ToInt320; for (int i = 0; i < etriesread; i++) si = (SERVER INFO 101)Marshal.PtrToStructure( public static ArrayList GetDomenControllerList(SV 101 TYPES type) { SERVER INFO 101 si; IntPtr pInfo = IntPtr.Zero; int etriesread = 0; int totalentries = 0; ArrayList srvs = new ArrayList(); NERR err = NetServerEnum(null, 101, out pInfo, -1, ref etriesread, ref totalentries, SV 101 TYPES.SV TYPE DOMAIN CTRL, null, 0); if ((err == NERR.NERR Success err == NERR.ERR0R M0RE DATA) && pInfo != IntPtr.Zero) int ptr = pInfo.ToInt320; for (int i = 0; i < etriesread; i++) si = (SERVER INFO 101)Marshal.PtrToStructure( new IntPtr(ptr), typeof(SERVER INFO 101)); srvs.Add(si.svl01 name); Добавляем имя сервера в список ptr += Marshal.SizeOf(si); new IntPtr(ptr), typeof(SERVER INFO 101)); srvs.Add(si.svl01 name); Добавляем имя сервера в список ptr += Marshal.SizeOf(si); catch (Exception) { /* Обработка ошибки } finally { Освобождаем выделенную память if (pInfo != IntPtr.Zero) NetApiBufferFree(pInfo); return (srvs);
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |