2013-05-22 2 views
0

나는 프로그램 경로를 가지고 있습니다. 예를 들어 utorrent와 pid도 있습니다. 나는 vb.net을 사용하여 프로그램 적으로이 값들을 달성했다. 난 그냥 백그라운드에서 그들을 실행하기 위해 자신의 아이콘 양식 트레이를 숨기려고하고 가능한 경우 핫키를 사용하여 프로세스를 첨부하여 다시 호출하십시오. 이를 달성 할 수있는 방법이 있습니까? >form1.visible=false
은 작업 표시 줄에서 양식을 숨기려면 - - 숨기기 프로세스 아이콘을 백그라운드에서 실행하려면

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 

은 양식을 숨기려면 내 코드

+0

예, 있습니다.하지만 무엇을 시도 했습니까? 왜 실패합니까? 이것은 쉽게 얻을 수있는 질문이 아니며 자신을 찾아 내고 질문 할 때 약간의 노력을 기울이십시오. 그렇게 많이 배우게됩니다. 어쨌든. 당신은 여기서부터 시작하고 싶어합니다. http://www.dotnetperls.com/process-start-vbnet –

+0

지금까지 시도한 것을 추가했습니다 – nyxem1

+0

프로그램이 시작하는 프로세스입니까? 또는 임의의 프로그램에 대한 시스템 트레이 아이콘을 숨기거나 표시 할 수있는 프로그램을 작성하려고합니까? – Adrian

답변

1

입니다>form1.ShowinTaskbar=false
는 다음 form1 keydown event로 이동이를 넣어 ...

If e.Control And e.KeyCode = Keys.Q Then ' ---> activate with Ctrl-Q 
    form1.visible=true 
End If 
+0

나는 폼이 아닌 작업 표시 줄에서 다른 프로그램의 아이콘을 숨기고 싶다 ... – nyxem1