Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Аналог net session Добавлено: 01.09.10 14:27  

Автор вопроса:  ANALYST
Здравствуйте!
Скажите пожалуйста как узнать все открытые сеансы на локальном компьютере для создания аналога команды "
net session
"?
Спасибо.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 ANALYST



Вопросов: 3
Ответов: 12
 Профиль | | #1 Добавлено: 02.09.10 09:00
Нашел функцию NetSessionEnum из "Netapi32.dll". Может есть пример его использования на VB.NET.
Я пишу
  1. Private Declare Function NetSessionEnum Lib "netapi32.dll" ( _
  2.         ByVal servername As String, _
  3.         ByVal UncClientName As String, _
  4.         ByVal username As String, _
  5.         ByVal level As Long, _
  6.         ByVal bufptr As Long, _
  7.         ByVal prefmaxlen As Long, _
  8.         ByVal entriesread As Long, _
  9.         ByVal totalentries As Long, _
  10.         ByVal resume_handle As Long) As Long
  11.  
  12.     Private pszServerName As String = Nothing
  13.     Private pszClientName As String = Nothing
  14.     Private pszUserName As String = Nothing
  15.     Private dwLevel As Long = 10
  16.     Private bufptr As Long
  17.     Private dwPrefMaxLen As Long = -1&
  18.     Private dwEntriesRead As Long = 0
  19.     Private dwTotalEntries As Long = 0
  20.     Private dwResumeHandle As Long = 0
  21. ---------------------------------------------
  22. nStatus = NetSessionEnum(pszServerName, pszClientName, pszUserName, 10, bufptr, dwPrefMaxLen, dwEntriesRead, dwTotalEntries, dwResumeHandle)

Но вылетает с ошибкой на
  1. nStatus = NetSessionEnum(pszServerName, pszClientName, pszUserName, 10, bufptr, dwPrefMaxLen, dwEntriesRead, dwTotalEntries, dwResumeHandle)
:
> PInvokeStackImbalance was detected
Message: A call to PInvoke function 'NetSessionEnum!NetSessionEnum.Form1::NetSessionEnum' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 02.09.10 09:49
хренаж себе) ты ентой функцией вывел програмный стэк из баланса :D заставил его покачнуться xD нарушил балансирующие составляющие XD netapi32.. уууух level=10 последний уровень доступа, рвёт всё и вся=) ты сломал систему, анлист, тебе поможет только reinstall_os

Ответить

Номер ответа: 3
Автор ответа:
 ANALYST



Вопросов: 3
Ответов: 12
 Профиль | | #3 Добавлено: 02.09.10 13:45
Решил:
  1.     Private Declare Function NetSessionEnum Lib "netapi32.dll" ( _
  2.         <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr)> ByVal servername As String, _
  3.         <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr)> ByVal UncClientName As String, _
  4.         <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr)> ByVal username As String, _
  5.         ByVal level As Long, _
  6.         ByVal bufptr As IntPtr, _
  7.         ByVal prefmaxlen As Long, _
  8.         ByVal entriesread As Long, _
  9.         ByVal totalentries As Long, _
  10.         ByVal resume_handle As Long) As Long
  11.  
  12.  
  13.     Private pszServerName As String = ""
  14.     Private pszClientName As String = ""
  15.     Private pszUserName As String = ""
  16.     Private dwLevel As Long = 502
  17.     Private bufptr As IntPtr = 0
  18.     Private dwPrefMaxLen As Long = -1&
  19.     Private dwEntriesRead As Long = 0
  20.     Private dwTotalEntries As Long = 0
  21.     Private dwResumeHandle As Long = 0
  22.  
  23.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  24.         If pszServerName = "" Then pszServerName = "\\" & Environ$("COMPUTERNAME")
  25.         Dim nStatus As Long = NetSessionEnum(pszServerName, pszClientName, pszUserName, dwLevel, bufptr, dwPrefMaxLen, dwEntriesRead, dwTotalEntries, dwResumeHandle)
  26.         MsgBox(nStatus)
  27.     End Sub

Ответить

Номер ответа: 4
Автор ответа:
 ANALYST



Вопросов: 3
Ответов: 12
 Профиль | | #4 Добавлено: 03.09.10 14:47
А как теперь узнать время простоя сеанса?

Ответить

Номер ответа: 5
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #5 Добавлено: 03.09.10 14:59
сделай кстати
  1. imports System.Runtime.InteropServices
чтобы сократить объявления ..

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам