How to Check Available Windows System Resources

Last reviewed: October 18, 1996
Article ID: Q111508
The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0
  • Microsoft FoxPro for Windows, versions 2.5, 2.5a, and 2.5b

SUMMARY

The code sample below demonstrates how FOXTOOLS.FLL can be used to check the available Windows system resources from within FoxPro for Windows or a FoxPro for Windows application.

MORE INFORMATION

NOTE: This code only works under Microsoft Windows versions 3.x (16-bit Windows). Under Windows NT or Windows 95, it causes the following error message:

   Entry point GetFreeSystemResources not found.

For more information about how to check available Windows system resources under Windows NT or Windows 95, see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q146424
   TITLE     : PRB: "Entry Point GetFreeSystemResources Not Found" Error

FOXTOOLS.FLL is a FoxPro application programming interface (API) library that allows FoxPro programs to call many Windows dynamic-link library (DLL) functions. The FOXTOOLS.WRI document explains how to use FOXTOOLS.FLL. Both files are located in the GOODIES\FOXTOOLS subdirectory of the main FoxPro for Windows directory.

The GetFreeSystemResources() function returns an integer representing the percentage of unused system, USER, or GDI resources. This function is part of the Microsoft Windows API. This function accepts the following parameters:

   UINT GetFreeSystemResources(fuSysResource)

   UINT fuSysResource      /* Type of resource to check */

There are three resource types that can be checked:
  • GSFR_SYSTEMRESOURCES: Returns the percentage of free space for system resources. This is the same as the value found in the About box on the Program Manager Help menu. This number represents the lower of the following two values. (Value = 0.)
  • GSFR_GDIRESOURCES: Returns the percentage of free space for GDI resources. GDI resources include device-context handles, brushes, pens, regions, fonts, and bitmaps. (Value = 1.)
  • GSFR_USERRESOURCES: Returns the percentage of free space for USER resources. These resources include window and menu handles. (Value = 2.)

    * Program to check Windows system resources

    * Establish constants #DEFINE sysreso 0 #DEFINE gdireso 1 #DEFINE userreso 2

    * Load the FOXTOOLS.FLL library SET LIBRARY TO SYS(2004) + "FOXTOOLS.FLL" ADDITIVE

    * Call RegFN() to register the GetFreeSystemResources() function getsysres = RegFn("GetFreeSystemResources", "I","I")

    * If RegFn() returned a value that is greater than -1, it can be * assumed that the function was successfully registered. IF getsysres > -1

          * CallFn() is used to call the GetFreeSystemResources() function
          * with the desired parameter. The constant sysreso is used here
          * to return the percentage of free resources. CallFn() could also
          * be used with the gdireso or userreso constants defined above to
          * return the percentage of free GDI or USER resources.
          x = CallFn(getsysres, sysreso)
          WAIT WINDOW "Current System Resources are:"+STR(x,3,0)+"%"
    
    ENDIF

    * Unload FOXTOOLS.FLL from memory

    RELEASE LIBRARY SYS(2004)+ "FOXTOOLS.FLL"

REFERENCES

Microsoft FoxPro for Windows FOXTOOLS.WRI

Microsoft Windows Software Development Kit "Programmer's Reference, Volume 2: Functions," version 3.1


Additional reference words: VFoxWin 3.00 FoxWin 2.50 2.50a 2.50b api fll
fox tools
KBCategory: kbinterop kbenv kbprg kbcode
KBSubcategory: FxprgFoxtools


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: October 18, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.