4

私は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 を Integer として宣言しようとしたところ、次の結果が得られました。

タイプ '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' には既定のプロパティがないため、インデックスを作成できません。

助けてください!これは私を夢中にさせています!

ありがとう

4

1 に答える 1

2

次の変更により、プロセス ID が取得され、テキスト ボックスに入力されます。

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

問題がある場合はコメントしてください。

于 2013-11-14T18:34:39.873 に答える