0
私は既存のプロジェクトに追加する前にコードをテストしています。VB6 'ランタイムエラー' 424 ':Object Required'エラー
Option Explicit
Dim objShell As Object
Dim m_EngineRun As Object
Sub main()
Set objShell = CreateObject("WScript.Shell")
Set m_EngineRun = objShell.Exec("notepad.exe")
Dim objWMIService As Object
Dim colProcessList As Object
MsgBox m_EngineRun.ProcessID
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessID = " & m_EngineRun.ProcessID)
If colProcessList.Count = 1 Then
objShell.run "TASKKILL /F /IM " & m_EngineRun.ProcessID, , True
MsgBox m_EngineRun.ProcessID & (" terminated")
Else
MsgBox m_EngineRun.ProcessID & (" does not exist")
End If
End Sub
次に、以下の行を追加して、424エラーで失敗します。
Option Explicit
Dim objShell As Object
Dim m_EngineRun As Object
'Added this line
Dim m_PID As Object
Sub main()
Set objShell = CreateObject("WScript.Shell")
Set m_EngineRun = objShell.Exec("notepad.exe")
'And this line
Set m_PID = m_EngineRun.ProcessID
Dim objWMIService As Object
Dim colProcessList As Object
'And changed this one
MsgBox m_PID
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessID = " & m_EngineRun.ProcessID)
If colProcessList.Count = 1 Then
objShell.run "TASKKILL /F /IM " & m_EngineRun.ProcessID, , True
MsgBox m_EngineRun.ProcessID & (" terminated")
Else
MsgBox m_EngineRun.ProcessID & (" does not exist")
End If
End Sub
間違いなくトラブルメーカーであるSet m_PID = m_EngineRun.ProcessID
行です。
私の特定の問題に関連する回答を見つけることができませんでした。おそらくm_PIDはオブジェクトではないはずですか?しかしもしそうなら、どうしたらよいでしょうか?
ご協力いただきまして誠にありがとうございます。
VB6の知識が不足しているため、オブジェクトになると思っていました。ご協力いただきありがとうございます。恥さ、私は正しいとあなたをマークすることはできません。 – Chris