我正在使用我在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'无法编入索引,因为它没有默认属性。
请帮忙!这真让我抓狂!
由于
答案 0 :(得分:0)
以下更改将为您提供进程ID并将其放入文本框中。
ProcID = Process.GetCurrentProcess.Id
TextBox1.Text = ProcID.ToString
如果您有问题请注释。