Projects

Find all our projects in development below.
All source code is GNU General Public License (GPL)

javaSpy

Browsing frmWMISpyQuery.vb (6.77 KB)

Option Explicit On

Imports System.IO
Imports System.Management

Public Class frmWMISpyQuery

    Private _host As frmWMISpy = Nothing

    Public Sub New(ByVal thisHost As frmWMISpy)

        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        _host = thisHost

    End Sub

    Public Property TabText() As String
        Get

            Dim parentTab As TabPage = CType(Me.Parent, TabPage)
            Return parentTab.Text

        End Get
        Set(ByVal value As String)

            Dim parentTab As TabPage = CType(Me.Parent, TabPage)
            parentTab.Text = value

        End Set
    End Property

    Private Sub btnQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click

        If _host._isConnected() Then

            If txtQuery.Text.Trim <> "" Then

                If Not _host._isBusy() Then

                    _host._showWaitCursor(True)
                    _host.grpConnection.Enabled = False
                    _host.grpRemote.Enabled = False
                    _host.tvNamespaces.Enabled = False
                    _host.lvClasses.Enabled = False

                    dataQuery.Columns.Clear()
                    dataQuery.Rows.Clear()

                    _host.lblInfo.Text = "Executing query..."
                    _host.lblCancel.Visible = True
                    _host.lblInfo.Spring = False

                    _host.WMI_Query(txtQuery.Text)

                Else

                    MessageBox.Show("Only one query allowed at a time. Please cancel your previous query.", _
                        Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

                End If

            Else

                MessageBox.Show("Enter the query.", _
                    Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

                txtQuery.SelectAll()
                txtQuery.Focus()

            End If

        Else
            _host.lblInfo.Text = "Not connected"
        End If

    End Sub

    Private Sub mnuCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCopy.Click

        If Not (dataQuery.CurrentRow Is Nothing) AndAlso _
            dataQuery.RowCount > 0 Then

            Try

                Dim copyData As String = ""
                For i As Integer = 0 To dataQuery.CurrentRow.Cells.Count - 1

                    If Not (dataQuery.CurrentRow.Cells(i).Value Is Nothing) Then _
                        copyData += dataQuery.CurrentRow.Cells(i).Value.ToString

                    If i < dataQuery.CurrentRow.Cells.Count - 1 Then _
                        copyData += vbTab

                Next

                Clipboard.SetText(copyData, TextDataFormat.Text)

            Catch
            End Try

        End If

    End Sub

    Private Sub mnuExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExport.Click

        Try

            exportFile.ShowDialog()

            If exportFile.FileName <> "" Then

                _host._showWaitCursor(True)

                Try

                    Dim fs As New StreamWriter(exportFile.FileName)

                    Dim headerData As String = ""
                    For i As Integer = 0 To dataQuery.ColumnCount - 1

                        headerData += dataQuery.Columns(i).HeaderText + _
                            IIf(i < dataQuery.ColumnCount - 1, ",", "")

                    Next

                    fs.WriteLine(headerData)

                    For x As Integer = 0 To dataQuery.RowCount - 1

                        Dim rowData As String = ""
                        For i As Integer = 0 To dataQuery.Rows(x).Cells.Count - 1

                            If Not (dataQuery.Rows(x).Cells(i).Value Is Nothing) Then _
                                rowData += """" + dataQuery.Rows(x).Cells(i).Value.ToString.Replace("""", """""""") + """"

                            If i < dataQuery.Rows(x).Cells.Count - 1 Then _
                                rowData += ","

                        Next

                        fs.WriteLine(rowData)

                    Next

                    fs.Close()

                Catch ex As Exception

                    MessageBox.Show("Error: " + ex.Message, _
                        Application.ProductName, MessageBoxButtons.OK, _
                        MessageBoxIcon.Error)

                End Try

                _host._showWaitCursor(False)

            End If

        Catch
        End Try

    End Sub

    Private Sub txtQuery_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtQuery.KeyPress

        If e.KeyChar = vbCr Or e.KeyChar = vbLf Then

            e.Handled = True
            btnQuery.PerformClick()

        End If

    End Sub

    Private Sub txtQuery_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQuery.MouseEnter

        pnlCmd.Visible = True

    End Sub

    Private Sub txtQuery_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtQuery.MouseLeave

        Dim pnlRect As Rectangle = Me.RectangleToScreen( _
            New Rectangle(pnlCmd.Left, pnlCmd.Top, _
            pnlCmd.Width, pnlCmd.Height))

        If Not pnlRect.Contains(Control.MousePosition) Then _
            pnlCmd.Visible = False

    End Sub

    Private Sub dataQuery_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dataQuery.CellDoubleClick

        If e.RowIndex >= 0 And e.ColumnIndex >= 0 Then

            Dim cellValue As Object = dataQuery.Rows(e.RowIndex).Cells(e.ColumnIndex).Value

            If Not (cellValue Is Nothing) Then

                With New clsEditDialog(Me)

                    .ReadOnly = True
                    .InputText = cellValue.ToString

                    .Show("Edit Cell  [read-only]")

                End With

            Else
                Beep()
            End If

        End If

    End Sub

    Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click

        With New clsEditDialog(Me)

            .CustomButtonImage = btnQuery.Image
            .CustomButtonToolTip = "Update and Run Query"

            .InputText = txtQuery.Text
            .Show("Edit Query")

            If Not .Aborted Then txtQuery.Text = .OutputText
            If .CustomButtonClicked Then btnQuery.PerformClick()

        End With

        txtQuery.Focus()
        txtQuery.SelectAll()

    End Sub

End Class

Download frmWMISpyQuery.vb

Back to file list


Back to project page