home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 6 / Eagles_Nest_Mac_Collection_Disc_6.TOAST / Windows / VisBasAPIex / VBAPIGUIDE.image / SYSINFO.FRM < prev    next >
Text File  |  1992-12-01  |  11KB  |  344 lines

  1. VERSION 2.00
  2. Begin Form SysInfo 
  3.    Caption         =   "System Information Viewer"
  4.    Height          =   4560
  5.    Left            =   1035
  6.    LinkMode        =   1  'Source
  7.    LinkTopic       =   "Form1"
  8.    ScaleHeight     =   3870
  9.    ScaleWidth      =   7365
  10.    Top             =   1140
  11.    Width           =   7485
  12.    Begin Timer Timer1 
  13.       Interval        =   250
  14.       Left            =   6120
  15.       Top             =   120
  16.    End
  17.    Begin ListBox ListColor 
  18.       Height          =   2565
  19.       Left            =   240
  20.       TabIndex        =   2
  21.       Top             =   600
  22.       Visible         =   0   'False
  23.       Width           =   3015
  24.    End
  25.    Begin TextBox KeyCheck 
  26.       Height          =   615
  27.       Left            =   5880
  28.       MultiLine       =   -1  'True
  29.       TabIndex        =   0
  30.       Text            =   "Press Key to get info"
  31.       Top             =   720
  32.       Width           =   1455
  33.    End
  34.    Begin TextBox Text1 
  35.       Height          =   1095
  36.       Left            =   5880
  37.       MultiLine       =   -1  'True
  38.       TabIndex        =   1
  39.       Text            =   "Caret change is shown here Set focus to this control for example"
  40.       Top             =   1440
  41.       Width           =   1335
  42.    End
  43.    Begin Label LabelColor 
  44.       Alignment       =   2  'Center
  45.       Caption         =   "Color"
  46.       Height          =   255
  47.       Left            =   240
  48.       TabIndex        =   3
  49.       Top             =   120
  50.       Visible         =   0   'False
  51.       Width           =   3015
  52.    End
  53.    Begin Label LabelKeyState 
  54.       BorderStyle     =   1  'Fixed Single
  55.       Height          =   255
  56.       Left            =   4800
  57.       TabIndex        =   4
  58.       Top             =   3480
  59.       Width           =   2415
  60.    End
  61.    Begin Menu MenuGeneral 
  62.       Caption         =   "General"
  63.       Begin Menu MenuFreeSpace 
  64.          Caption         =   "Free&Space"
  65.       End
  66.       Begin Menu MenuTimes 
  67.          Caption         =   "&Times"
  68.       End
  69.       Begin Menu MenuFlags 
  70.          Caption         =   "&Flags"
  71.       End
  72.    End
  73.    Begin Menu MenuSystem 
  74.       Caption         =   "System"
  75.       Begin Menu MenuColors 
  76.          Caption         =   "Colors"
  77.       End
  78.       Begin Menu MenuMetrics 
  79.          Caption         =   "&Metrics"
  80.       End
  81.       Begin Menu MenuParameters 
  82.          Caption         =   "&Parameters"
  83.       End
  84.    End
  85. End
  86.  
  87. Sub Form_Load ()
  88.     ListColor.AddItem "COLOR_ACTIVEBORDER"
  89.     ListColor.AddItem "COLOR_ACTIVECAPTION"
  90.     ListColor.AddItem "COLOR_APPWORKSPACE"
  91.     ListColor.AddItem "COLOR_BACKGROUND"
  92.     ListColor.AddItem "COLOR_BTNFACE"
  93.     ListColor.AddItem "COLOR_BTNHIGHLIGHT"
  94.     ListColor.AddItem "COLOR_BTNSHADOW"
  95.     ListColor.AddItem "COLOR_BTNTEXT"
  96.     ListColor.AddItem "COLOR_CAPTIONTEXT"
  97.     ListColor.AddItem "COLOR_GRAYTEXT"
  98.     ListColor.AddItem "COLOR_HIGHLIGHT"
  99.     ListColor.AddItem "COLOR_HIGHLIGHTTEXT"
  100.     ListColor.AddItem "COLOR_INACTIVEBORDER"
  101.     ListColor.AddItem "COLOR_INACTIVECAPTION"
  102.     ListColor.AddItem "COLOR_INACTIVECAPTIONTEXT"
  103.     ListColor.AddItem "COLOR_MENU"
  104.     ListColor.AddItem "COLOR_MENUTEXT"
  105.     ListColor.AddItem "COLOR_SCROLLBAR"
  106.     ListColor.AddItem "COLOR_WINDOW"
  107.     ListColor.AddItem "COLOR_WINDOWFRAME"
  108.     ListColor.AddItem "COLOR_WINDOWTEXT"
  109.  
  110. End Sub
  111.  
  112. '   Display in the edit control the name of the key
  113. '
  114. Sub KeyCheck_KeyDown (KeyCode As Integer, Shift As Integer)
  115.     Dim scancode&
  116.     Dim keyname As String * 256
  117.  
  118.     ' Get the scancode
  119.     scancode& = MapVirtualKey%(KeyCode, 0)
  120.     ' Shift the scancode to the high word and get the
  121.     ' key name
  122.     dummy% = GetKeyNameText(scancode& * &H10000, keyname, 255)
  123.     KeyCheck.Text = keyname
  124. End Sub
  125.  
  126. Sub KeyCheck_KeyPress (KeyAscii As Integer)
  127.     KeyAscii = 0    ' Ignore keys in this control
  128. End Sub
  129.  
  130. Sub KeyCheck_LostFocus ()
  131.     KeyCheck.Text = "Press key to get info"
  132. End Sub
  133.  
  134. Sub ListColor_Click ()
  135.     Dim colindex%
  136.     Select Case ListColor.ListIndex
  137.         Case 0
  138.             colindex% = COLOR_ACTIVEBORDER
  139.         Case 1
  140.             colindex% = COLOR_ACTIVECAPTION
  141.         Case 2
  142.             colindex% = COLOR_APPWORKSPACE
  143.         Case 3
  144.             colindex% = COLOR_BACKGROUND
  145.         Case 4
  146.             colindex% = COLOR_BTNFACE
  147.         Case 5
  148.             colindex% = COLOR_BTNHIGHLIGHT
  149.         Case 6
  150.             colindex% = COLOR_BTNSHADOW
  151.         Case 7
  152.             colindex% = COLOR_BTNTEXT
  153.         Case 8
  154.             colindex% = COLOR_CAPTIONTEXT
  155.         Case 9
  156.             colindex% = COLOR_GRAYTEXT
  157.         Case 10
  158.             colindex% = COLOR_HIGHLIGHT
  159.         Case 11
  160.             colindex% = COLOR_HIGHLIGHTTEXT
  161.         Case 12
  162.             colindex% = COLOR_INACTIVEBORDER
  163.         Case 13
  164.             colindex% = COLOR_INACTIVECAPTION
  165.         Case 14
  166.             colindex% = COLOR_INACTIVECAPTIONTEXT
  167.         Case 15
  168.             colindex% = COLOR_MENU
  169.         Case 16
  170.             colindex% = COLOR_MENUTEXT
  171.         Case 17
  172.             colindex% = COLOR_SCROLLBAR
  173.         Case 18
  174.             colindex% = COLOR_WINDOW
  175.         Case 19
  176.             colindex% = COLOR_WINDOWFRAME
  177.         Case 20
  178.             colindex% = COLOR_WINDOWTEXT
  179.     End Select
  180.     LabelColor.BackColor = GetSysColor&(colindex%) And &HFFFFFF
  181.  
  182. End Sub
  183.  
  184. Sub MenuColors_Click ()
  185.     SysInfo.Cls
  186.     ShowColors -1
  187. End Sub
  188.  
  189. Sub MenuFlags_Click ()
  190.     Dim flagnum&
  191.     Dim vernum&, verword%
  192.  
  193.     ShowColors 0
  194.     SysInfo.Cls
  195.     Print
  196.     ' Get the windows flags and version numbers
  197.     flagnum& = GetWinFlags&()
  198.     vernum& = GetVersion&()
  199.     verword% = CInt(vernum& / &H10000)
  200.     Print "Running MS-DOS version "; verword% / 256; "."; verword% And &HFF
  201.     verword% = CInt(vernum& And &HFFFF&)
  202.     Print "Running Windows version "; verword% And &HFF; "."; CInt(verword% / 256)
  203.     If flagnum& And WF_80x87 Then Print "80x87 coprocessor present"
  204.     If flagnum& And WF_CPU086 Then Print "8086 present"
  205.     If flagnum& And WF_CPU186 Then Print "80186 present"
  206.     If flagnum& And WF_CPU286 Then Print "80286 present"
  207.     If flagnum& And WF_CPU386 Then Print "80386 present"
  208.     If flagnum& And WF_CPU486 Then Print "80486 present"
  209.     If flagnum& And WF_ENHANCED Then Print "Windows 386-enhanced mode"
  210.     If flagnum& And WF_PAGING Then Print "Memory paging active"
  211.     If flagnum& And WF_PMODE Then Print "Protected mode operation"
  212.     If flagnum& And WF_WLO Then Print "Windows emulation in non-Windows system"
  213.     
  214. End Sub
  215.  
  216. Sub MenuFreeSpace_Click ()
  217.     ShowColors 0
  218.     SysInfo.Cls
  219.     Print
  220.     Print GetFreeSpace&(0); "Bytes free in Global Heap"
  221.     Print GetFreeSystemResources%(GFSR_SYSTEMRESOURCES); "% free system resources."
  222.     Print GetFreeSystemResources%(GFSR_GDIRESOURCES); "% free GDI resources."
  223.     Print GetFreeSystemResources%(GFSR_USERRESOURCES); "% free USER resources."
  224. End Sub
  225.  
  226. '   The following is a selection of the system metrics
  227. '   that can be determined - see the reference section
  228. '   under the GetSystemMetrics function for more.
  229. '
  230. Sub MenuMetrics_Click ()
  231.     ShowColors 0
  232.     SysInfo.Cls
  233.     Print
  234.     Print "Non sizeable border width,height = "; GetSystemMetrics%(SM_CXBORDER); ","; GetSystemMetrics%(SM_CYBORDER)
  235.     Print "Caption height = "; GetSystemMetrics%(SM_CYCAPTION)
  236.     Print "Cursor width,height = "; GetSystemMetrics%(SM_CXCURSOR); ","; GetSystemMetrics%(SM_CYCURSOR)
  237.     Print "Icon width,height = "; GetSystemMetrics%(SM_CXICON); ","; GetSystemMetrics%(SM_CYICON)
  238.     Print "Width,Height of client area of full screen window = "; GetSystemMetrics%(SM_CXFULLSCREEN); ","; GetSystemMetrics(SM_CYFULLSCREEN)
  239.     Print "Menu bar height = "; GetSystemMetrics%(SM_CYMENU)
  240.     Print "Minimum width,height of window = "; GetSystemMetrics(SM_CXMIN); ","; GetSystemMetrics(SM_CYMIN)
  241.     
  242. End Sub
  243.  
  244. '   A few examples of the many system parameters that can
  245. '   be set and retreived using the SystemParametersInfo
  246. '   function
  247. '
  248. Sub MenuParameters_Click ()
  249.     Dim intval%
  250.     ShowColors 0
  251.     SysInfo.Cls
  252.     Print
  253.     dummy% = SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, intval%, 0)
  254.     Print "Keyboard Delay is "; intval%
  255.     dummy% = SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, intval%, 0)
  256.     Print "Keyboard Speed is "; intval%
  257.     dummy% = SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, intval%, 0)
  258.     Print "Screen Save Active = "; intval%
  259.     dummy% = SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, intval%, 0)
  260.     Print "Screen Save Delay is "; intval%; " seconds"
  261.  
  262.  
  263. End Sub
  264.  
  265. Sub MenuTimes_Click ()
  266.     ShowColors 0
  267.     SysInfo.Cls
  268.     Print
  269.     Print "Caret blinks every "; GetCaretBlinkTime%(); " ms"
  270.     Print "It's been "; GetCurrentTime&(); " ms since Windows was started"
  271.     Print "The last Windows message was processed at "; GetMessageTime&(); " ms"
  272.     Print "Two clicks within "; GetDoubleClickTime%(); " ms of each other are a double click"
  273.     Print "Timer resolution is "; GetTimerResolution&(); "microseconds per tick"
  274.  
  275. End Sub
  276.  
  277. '   Use to show or hide the colors listbox and label
  278. '
  279. Sub ShowColors (bflag%)
  280.     If bflag% Then  ' Show them
  281.         ListColor.Visible = -1
  282.         LabelColor.Visible = -1
  283.     Else    ' Hide them
  284.         ListColor.Visible = 0
  285.         LabelColor.Visible = 0
  286.     End If
  287.  
  288. End Sub
  289.  
  290. '   This shows how a custom caret can be used in a text
  291. '   box. Note that an arbitrary bitmap could be used as
  292. '   well (refer to the function reference for the
  293. '   CreateCaret function - also chapter 8 for information
  294. '   on bitmaps).
  295. '   Also note that VB may change the caret back to the
  296. '   default without notice (like when a menu or other
  297. '   application is selected)
  298. '
  299. Sub Text1_GotFocus ()
  300.     
  301.     ' Save the original blink time - it will be used to
  302.     ' restore the original value during the LostFocus event
  303.     OriginalCaretBlinkTime% = GetCaretBlinkTime%()
  304.     
  305.     ' Creat a different shaped caret
  306.     CreateCaret agGetControlHwnd%(Text1), 0, 10, 15
  307.     
  308.     ' Creating the new caret caused the prior one (the
  309.     ' default for the edit control) to be destroyed and
  310.     ' thus hidden. So we must show the new caret.
  311.     ShowCaret agGetControlHwnd%(Text1)
  312.  
  313.     ' And change to an obnoxiously fast blink time - just
  314.     ' to show how it's done.
  315.     SetCaretBlinkTime 150
  316. End Sub
  317.  
  318. '   Be sure to set the caret blink time back to its
  319. '   original value when the control loses the focus
  320. '
  321. Sub Text1_LostFocus ()
  322.     SetCaretBlinkTime OriginalCaretBlinkTime%
  323. End Sub
  324.  
  325. '   Update a label field to show the current state
  326. '   of the capslock, numlock and scroll lock keys
  327. '
  328. Sub Timer1_Timer ()
  329.     Dim numlock%, scrolllock%, capslock%
  330.     Dim res$
  331.     
  332.     capslock% = GetKeyState%(VK_CAPITAL)
  333.     numlock% = GetKeyState%(VK_NUMLOCK)
  334.     scrolllock% = GetKeyState%(VK_SCROLL)
  335.  
  336.     ' The low bit indicates the state of the toggle
  337.     If capslock% And 1 Then res$ = res$ + "CAPS  "
  338.     If numlock% And 1 Then res$ = res$ + "NUM  "
  339.     If scrolllock% And 1 Then res$ = res$ + "SCROLL"
  340.  
  341.     LabelKeyState.Caption = res$
  342. End Sub
  343.  
  344.