私は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' には既定のプロパティがないため、インデックスを作成できません。
助けてください!これは私を夢中にさせています!
ありがとう