2017-12-05 6 views
0

방금 ​​전에 VBScript에서 시작한 프로그램에 대해 질문했을 때 정확하게 수행해야합니다. 내가 그렇게 할 수있는 방법,VBScript 프로세스 이름 또는 프로세스 실행 파일 이름으로 프로세스 ID 가져 오기

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "SystemPropertiesAdvanced.exe" 
WScript.Sleep 1000 

지금은 SystemPropertiesAdvanced.exe 프로그램의 프로세스 ID를 얻으려면 :

나는 다음과 같이 VBScript를에서 시스템 등록 프로그램을 시작하고?

가능한 한 많이 믹싱 코딩없이 VBScript를 사용하여이 작업을 수행하고 싶습니다.

+0

(첫 번째 Google 검색 결과) [https://www.experts-exchange.com/questions/21638733/How-do-you-get-the-PID-of-a-process-started-by-WshShell-Run .html – garbb

+0

그냥 먼저 열리는 프로그램의 답을 확인하십시오. 작동하지 않습니다. 어쩌면 계산기에서 작동합니다. 작은 프로그램입니다. 시스템 등록 정보의 프로세스 ID가 필요합니다. –

답변

1
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") 

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process where name='Calculator.exe'") 
'msgbox colitems 
For Each objItem in colItems 
    msgbox objItem.name & " " & objItem.ProcessID & " " & objItem.CommandLine 
    If objItem.name = "Calculator.exe" then objItem.terminate 
Next 

이 경우 WMI를 사용하여 Calculator.exe를 쿼리 한 다음 종료합니다.

+0

답변이 정확하고 감사합니다. 나는 주된 문제가있다, 우리가 대화에서 토론 할 수 있을까? –

+0

id에 의해'SystemPropertiesAdvanced.exe' 프로세스를 활성화하려고합니다. 그리고 나서 코드 자체로 ENTER 키를 누르면 작동하지 않습니다. 도와 주실 수 있습니까? –

+0

아마도'WshEnv = WshShell.Environment ("PROCESS") '및'WshEnv ("TestVar") = "Windows 스크립트 호스트"를 사용하여 현재 프로세스를 변경해야합니다. 영구적으로 만들려면 레지스트리를 편집하십시오. – ACatInLove

관련 문제