0

私はプログラムのパスを持っています.. utorrentのように、それもpidです。これらの値は、vb.net を使用してプログラムで達成しました。バックグラウンドで実行するためだけにアイコンフォームトレイを非表示にし、可能であればプロセスにホットキーを付けてコールバックしたいだけです。これを達成する方法はありますか。

Option Strict On
Option Explicit On
Option Infer Off

Imports TrayHelper

Public Class Form1
    Dim x1, y1 As Single
    Friend WithEvents lv As New ListView With {.Parent = Me, .Dock = DockStyle.Fill}


    Private il As New ImageList
    Dim nxt As Integer
    Friend WithEvents mnuContextMenu As New ContextMenu() 'Moved this to be declared as global
    Dim mnuItemHide As New MenuItem()
    Dim mnuItemExit As New MenuItem()
    Dim things As List(Of TrayButton) = TrayHelper.Tray.GetTrayButtons()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Controls.Add(lv)
        lv.View = View.Details


        il.ColorDepth = ColorDepth.Depth32Bit
        lv.SmallImageList = il
        lv.Columns.Add("Button Text", 300, HorizontalAlignment.Left)
        lv.Columns.Add("PID", 50, HorizontalAlignment.Left)
        lv.Columns.Add("Process Path", 600, HorizontalAlignment.Left)
        'Dim things As List(Of TrayButton) = TrayHelper.Tray.GetTrayButtons()
        For Each b As TrayButton In things
            If b.Icon IsNot Nothing Then
                il.Images.Add(b.TrayIndex.ToString, b.Icon)
            Else
                ' When we can't find an icon, the listview will display this form's one.
                ' You could try to grab the icon from the process path I suppose. 
                il.Images.Add(b.TrayIndex.ToString, Me.Icon)
            End If
            Dim lvi As New ListViewItem(b.Text)
            lvi.SubItems.Add(b.ProcessIdentifier.ToString)
            lvi.SubItems.Add(b.ProcessPath)
            lvi.ImageKey = b.TrayIndex.ToString
            lv.Items.Add(lvi)
        Next
        lv.MultiSelect = False
        'lv.ContextMenu = mnuContextMenu 'Don`t need to add if done this way

        lv.FullRowSelect = True 'Added this but, you don`t need it if you don`t want it


        mnuItemHide.Text = "&Hide"
        mnuItemExit.Text = "&Exit"
        mnuContextMenu.MenuItems.Add(mnuItemHide)
        mnuContextMenu.MenuItems.Add(mnuItemExit)


        AddHandler mnuItemHide.Click, AddressOf Me.menuItem1_Click


     End Sub

    Private Sub lv_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lv.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Right Then
            If lv.GetItemAt(e.X, e.Y) IsNot Nothing Then
                lv.GetItemAt(e.X, e.Y).Selected = True
                mnuContextMenu.Show(lv, New Point(e.X, e.Y))
                mnuItemExit.Visible = True
                mnuItemHide.Visible = True

            End If

        End If

    End Sub

    Private Sub menuItem1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim txtValue as String
        txtValue = lv.FocusedItem.SubItems(2).Text
        Kill(txtValue)

        Dim txtValue1 As String
        txtValue1 = lv.FocusedItem.SubItems(0).Text
        MessageBox.Show(txtValue1 + " has been hidden")

    End Sub

End Class

これは私のコードです

4

1 に答える 1