[DllImport("user32.dll", SetLastError=true)]
static extern bool GetUserObjectInformation(IntPtr hObj, int nIndex,
[Out] byte [] pvInfo, uint nLength, out uint lpnLengthNeeded);
<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function GetUserObjectInformation(ByVal hObj As IntPtr, ByVal nIndex As Int32, ByRef pvInfo As Byte(), <MarshalAs(UnmanagedType.I4)> ByVal nLength As Int32, <MarshalAs(UnmanagedType.I4)> ByRef lpnLengthNeeded As Int32) As Boolean
End Function
None.
This line is required at the top of the code module for the 'MarshalAs' attribute:
Imports System.Runtime.InteropServices
nIndex constant values:
Private Const UOI_FLAGS = 1
Private Const UOI_NAME = 2
Private Const UOI_TYPE = 3
Private Const UOI_USER_SID = 4
nIndex constant values
private const int UOI_FLAGS = 1;
private const int UOI_NAME = 2;
private const int UOI_TYPE = 3;
private const int UOI_USER_SID = 4;
private const int UOI_HEAPSIZE = 5; //Windows Server 2003 and Windows XP/2000: This value is not supported.
private const int UOI_IO = 6; //Windows Server 2003 and Windows XP/2000: This value is not supported.
Please add some!
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetUserObjectInformation(IntPtr hObj, int nIndex,
out ulong pvInfo, uint nLength, out uint lpnLengthNeeded);
private void Form1_Load(object sender, EventArgs e)
{
Desktop desktop = Desktop.GetCurrent(); //Desktop class from http://www.codeproject.com/KB/cs/csdesktopswitching.aspx
IntPtr hdesk = desktop.DesktopHandle;
ulong heapsize;
uint lengthNeeded;
if (GetUserObjectInformation(hdesk, UOI_HEAPSIZE, out heapsize, sizeof(ulong), out lengthNeeded))
{
Text = "Heapsize:" + heapsize;
}
}
Do you know one? Please contribute it!