frmMain.frm
上传用户:gzgold
上传日期:2013-02-21
资源大小:36k
文件大小:10k
源码类别:

多显示器编程

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form frmMain 
  4.    Caption         =   "Netstat"
  5.    ClientHeight    =   3240
  6.    ClientLeft      =   165
  7.    ClientTop       =   450
  8.    ClientWidth     =   4680
  9.    Icon            =   "frmMain.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   3240
  12.    ScaleWidth      =   4680
  13.    StartUpPosition =   3  'Windows Default
  14.    Begin VB.TextBox txtUpdate 
  15.       Height          =   285
  16.       Left            =   1800
  17.       TabIndex        =   1
  18.       Text            =   "1000"
  19.       Top             =   120
  20.       Width           =   1215
  21.    End
  22.    Begin MSComctlLib.ImageList imlMain 
  23.       Left            =   2040
  24.       Top             =   1320
  25.       _ExtentX        =   1005
  26.       _ExtentY        =   1005
  27.       BackColor       =   -2147483643
  28.       ImageWidth      =   16
  29.       ImageHeight     =   16
  30.       MaskColor       =   12632256
  31.       _Version        =   393216
  32.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  33.          NumListImages   =   12
  34.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  35.             Picture         =   "frmMain.frx":0442
  36.             Key             =   "Closed"
  37.          EndProperty
  38.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  39.             Picture         =   "frmMain.frx":0556
  40.             Key             =   "Listening"
  41.          EndProperty
  42.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  43.             Picture         =   "frmMain.frx":09AA
  44.             Key             =   "SYN Sent"
  45.          EndProperty
  46.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  47.             Picture         =   "frmMain.frx":0CC6
  48.             Key             =   "SYN Recieved"
  49.          EndProperty
  50.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  51.             Picture         =   "frmMain.frx":0FE2
  52.             Key             =   "Established"
  53.          EndProperty
  54.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  55.             Picture         =   "frmMain.frx":1436
  56.             Key             =   "FIN Wait 1"
  57.          EndProperty
  58.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  59.             Picture         =   "frmMain.frx":188A
  60.             Key             =   "FIN Wait 2"
  61.          EndProperty
  62.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  63.             Picture         =   "frmMain.frx":1CDE
  64.             Key             =   "Close Wait"
  65.          EndProperty
  66.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  67.             Picture         =   "frmMain.frx":2132
  68.             Key             =   "Closing"
  69.          EndProperty
  70.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  71.             Picture         =   "frmMain.frx":2586
  72.             Key             =   "Last ACK"
  73.          EndProperty
  74.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  75.             Picture         =   "frmMain.frx":29DA
  76.             Key             =   "Time Wait"
  77.          EndProperty
  78.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  79.             Picture         =   "frmMain.frx":2E2E
  80.             Key             =   "Other"
  81.          EndProperty
  82.       EndProperty
  83.    End
  84.    Begin VB.Timer tmrRefresh 
  85.       Interval        =   1000
  86.       Left            =   1800
  87.       Top             =   1320
  88.    End
  89.    Begin MSComctlLib.ListView lvMain 
  90.       Height          =   2775
  91.       Left            =   0
  92.       TabIndex        =   0
  93.       Top             =   480
  94.       Width           =   4455
  95.       _ExtentX        =   7858
  96.       _ExtentY        =   4895
  97.       View            =   3
  98.       LabelEdit       =   1
  99.       LabelWrap       =   -1  'True
  100.       HideSelection   =   0   'False
  101.       _Version        =   393217
  102.       Icons           =   "imlMain"
  103.       SmallIcons      =   "imlMain"
  104.       ColHdrIcons     =   "imlMain"
  105.       ForeColor       =   -2147483640
  106.       BackColor       =   -2147483643
  107.       Appearance      =   1
  108.       NumItems        =   3
  109.       BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  110.          Key             =   "Local"
  111.          Text            =   "Local Port"
  112.          Object.Width           =   1764
  113.       EndProperty
  114.       BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  115.          SubItemIndex    =   1
  116.          Key             =   "Remote"
  117.          Text            =   "Remote Address"
  118.          Object.Width           =   2540
  119.       EndProperty
  120.       BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  121.          SubItemIndex    =   2
  122.          Key             =   "Host"
  123.          Text            =   "Remote Hostname"
  124.          Object.Width           =   2540
  125.       EndProperty
  126.    End
  127.    Begin VB.Label Label1 
  128.       Caption         =   "Update Frequency (ms):"
  129.       Height          =   255
  130.       Left            =   0
  131.       TabIndex        =   2
  132.       Top             =   120
  133.       Width           =   1815
  134.    End
  135.    Begin VB.Menu mnuContext 
  136.       Caption         =   "&Context"
  137.       Visible         =   0   'False
  138.       Begin VB.Menu mnuContextKill 
  139.          Caption         =   "&Kill"
  140.       End
  141.    End
  142. End
  143. Attribute VB_Name = "frmMain"
  144. Attribute VB_GlobalNameSpace = False
  145. Attribute VB_Creatable = False
  146. Attribute VB_PredeclaredId = True
  147. Attribute VB_Exposed = False
  148. 'This code is copyright 2000 Nick Johnson.
  149. 'This code may be reused and modified for non-commercial
  150. 'purposes only as long as credit is given to the author
  151. 'in the programmes about box and it's documentation.
  152. 'If you use this code, please email me at:
  153. 'arachnid@mad.scientist.com and let me know what you think
  154. 'and what you are doing with it.
  155. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  156.     If UnloadMode <> vbAppWindows Then
  157.         MsgBox "Netstat code is copyright 2000, Nick Johnson. This code may be reused for non commercial purposes on condition that credit is given to the author in the programmes about box and documentation.", vbInformation + vbOKOnly
  158.     End If
  159. End Sub
  160. Private Sub Form_Resize()
  161.     Dim a As Integer
  162.     lvMain.Width = lvMain.Parent.Width - 100
  163.     lvMain.Height = lvMain.Parent.Height - 850
  164.     
  165.     For a = 2 To lvMain.ColumnHeaders.Count
  166.         lvMain.ColumnHeaders(a).Width = (frmMain.Width - 100) / (lvMain.ColumnHeaders.Count - 1) - 600
  167.     Next a
  168. End Sub
  169. Private Sub lvMain_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  170.     If Button = 2 Then
  171.         If ipsMain.RowData(lvMain.SelectedItem.Tag).State = TCP_STATE_ESTAB Then
  172.             mnuContextKill.Enabled = True
  173.         Else
  174.             mnuContextKill.Enabled = False
  175.         End If
  176.         frmMain.PopupMenu mnuContext
  177.     End If
  178. End Sub
  179. Private Sub mnuContextKill_Click()
  180.     ipsMain.RowData(lvMain.SelectedItem.Tag).Kill
  181. End Sub
  182. Private Sub tmrRefresh_Timer()
  183.     Dim a As Integer
  184.     Dim intLVPtr As Integer
  185.     
  186.     ipsMain.getTCPConnections
  187.     
  188.     'Update routine - if the existing entry is the same as this one, leave it, otherwise overwrite it.
  189.     intlvpointer = 0
  190.     For a = 0 To ipsMain.RowCount - 1
  191.         If ipsMain.RowData(a).State <> TCP_STATE_LISTEN Then
  192.             intLVPtr = intLVPtr + 1
  193.             'If we are past the bounds of the current array, add a new line
  194.             If intLVPtr > lvMain.ListItems.Count Then
  195.                 lvMain.ListItems.Add , , ipsMain.RowData(a).LocalPort, , ipsMain.RowData(a).StateText
  196.                 lvMain.ListItems(intLVPtr).ToolTipText = ipsMain.RowData(a).StateText
  197.                 lvMain.ListItems(lvMain.ListItems.Count).ListSubItems.Add , , ipsMain.RowData(a).RemoteIPString & ":" & ipsMain.RowData(a).RemotePort
  198.                 lvMain.ListItems(lvMain.ListItems.Count).ListSubItems.Add , , "Retrieving..."
  199.                 lvMain.Refresh
  200.                 lvMain.ListItems(lvMain.ListItems.Count).ListSubItems(2).Text = iphDNS.AddressToName(ipsMain.RowData(a).RemoteIPString)
  201.                 lvMain.ListItems(lvMain.ListItems.Count).Tag = a
  202.             Else
  203.                 'We are still in the bounds. If the current
  204.                 'entry equals the one to insert, just change
  205.                 'the icon. Otherwise, overwrite it.
  206.                 If lvMain.ListItems(intLVPtr).Text = ipsMain.RowData(a).LocalPort And lvMain.ListItems(intLVPtr).ListSubItems(1).Text = ipsMain.RowData(a).RemoteIPString & ":" & ipsMain.RowData(a).RemotePort And lvMain.ListItems(intLVPtr).Tag = a Then
  207.                     'lvMain.ListItems(intLVPtr).SmallIcon = ipsMain.RowData(a).StateText
  208.                     If lvMain.ListItems(intLVPtr).SmallIcon <> ipsMain.RowData(a).StateText Then
  209.                         lvMain.ListItems(intLVPtr).SmallIcon = ipsMain.RowData(a).StateText
  210.                         lvMain.ListItems(intLVPtr).ToolTipText = ipsMain.RowData(a).StateText
  211.                     End If
  212.                 Else
  213.                     'Different, overwrite it.
  214.                     lvMain.ListItems(intLVPtr).Text = ipsMain.RowData(a).LocalPort
  215.                     lvMain.ListItems(intLVPtr).ListSubItems(1).Text = ipsMain.RowData(a).RemoteIPString & ":" & ipsMain.RowData(a).RemotePort
  216.                     lvMain.ListItems(lvMain.ListItems.Count).ListSubItems(2).Text = "Retrieving..."
  217.                     lvMain.Refresh
  218.                     lvMain.ListItems(lvMain.ListItems.Count).ListSubItems(2).Text = iphDNS.AddressToName(ipsMain.RowData(a).RemoteIPString)
  219.                     lvMain.ListItems(intLVPtr).Tag = a
  220.                     lvMain.ListItems(intLVPtr).SmallIcon = ipsMain.RowData(a).StateText
  221.                     lvMain.ListItems(intLVPtr).ToolTipText = ipsMain.RowData(a).StateText
  222.                 End If
  223.             End If
  224.         End If
  225.     Next a
  226.     
  227.     'If there are more listitem entries than connections, kill the extra ones.
  228.     For a = lvMain.ListItems.Count To intLVPtr + 1 Step -1
  229.         lvMain.ListItems.Remove a
  230.     Next a
  231. End Sub
  232. Private Sub txtUpdate_Change()
  233.     tmrRefresh.Interval = Val(txtUpdate.Text)
  234. End Sub