如何在使用该VB表单启动的进程的VB表单中获取进程ID?

时间:2013-11-14 18:20:19

标签: vb.net visual-studio-2005

我正在使用我在VB2005中制作的表格,在按下按钮后打开程序,然后在文本字段中显示进程ID(再次按下按钮)。当我运行它时,表单将打开程序(Notepad.exe),但当我单击按钮查看进程ID Visual Studio 2005说:

InvalidCastException未处理并突出显示“TextBox1.Text = ProcID”行

Imports System
Imports System.Diagnostics

Public Class Form1

    Dim myProcess As New Process
    Dim ProcID

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Launch.Click
        myProcess.StartInfo.FileName = "notepad.exe"
        myProcess.Start()
    End Sub

    Private Sub GetID_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetID.Click
        ProcID = Process.GetCurrentProcess()
        TextBox1.Text = ProcID
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

End Class

当我尝试通过以下方式将ProcID声明更改为字符串时:

    Dim ProcID As String

VS2005给出错误:

  

'System.Diagnostics.Process'类型的值无法转换为'String'。

我尝试将Dim ProcID声明为整数并得到:

  

'System.Diagnostics.Process'类型的值无法转换为'Integer'。

我也尝试了以下改变而没有运气:

Private Sub GetID_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetID.Click
    ProcID = Process.GetCurrentProcess(myProcess)
    TextBox1.Text = CInt(ProcID)
End Sub

该错误说:

  

类'System.Diagnostics.Process'无法编入索引,因为它没有默认属性。

请帮忙!这真让我抓狂!

由于

1 个答案:

答案 0 :(得分:0)

以下更改将为您提供进程ID并将其放入文本框中。

 ProcID = Process.GetCurrentProcess.Id
 TextBox1.Text = ProcID.ToString

如果您有问题请注释。