Creutz:

I'll do better than that, I'll give you the VB source code:

[file: KixLib32.cls]

code:

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Class1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit

Public Function GetPhysicalMemory() As Integer

Dim Status As MEMORYSTATUS

Call GlobalMemoryStatus(Status)

GetPhysicalMemory = Status.dwTotalPhys

End Function


[file: KixLib32.bas]

code:

Attribute VB_Name = "Module1"
Public Type SYSTEM_INFO
dwOemID As Long
dwPageSize As Long
lpMinimumApplicationAddress As Long
lpMaximumApplicationAddress As Long
dwActiveProcessorMask As Long
dwNumberOrfProcessors As Long
dwProcessorType As Long
dwAllocationGranularity As Long
dwReserved As Long
End Type
Public Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)

Public Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type
Public Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)


Simply create a new "ActiveX DLL" project, slamdunk these files into Visual Studio and your off to the races !

Let me know if you have download formatting issues or if you just want me to send you these files via email.

I'll also email you the kixlib32.dll component and you can try it out yourself !

Shawn.