2012-10-21 1 views
0

스칼라를 사용 중이고 프로세스 이름에서 PrcoessID를 얻을 수있는 항목을 찾을 수 없습니다. Java, Scala 또는 Winapi에서도 마찬가지입니다. 순간 프로세스 이름에서 프로세스 ID 가져 오기

나는 FindWindowAGetWindowThreadProcessId를 사용하고,하지만 난 메모장의 10 개 인스턴스를한다면 나는 그들을 액세스 할 수 있습니다,

val process: Array[Int] = GetProcessIdFromExeName("Notepad") 

그래서 나에게 배열을 줄 것이다 무언가를 선호 process(0-9)

.NET에서 이와 비슷한 것이 발견되었지만 WINAPI 또는 Java/Scala와 비슷한 것이 있습니까?

답변

1

가장 간단한 방법은 tasklist을 실행하고 출력을 구문 분석하는 것입니다. 참조 할 수 있도록이 리소스를 참조하십시오 : 또한 WMI를 사용할 수 있습니다

https://stackoverflow.com/questions/53489/how-do-you-list-all-processes-on-the-command-line-in-windows

. WMI 쿼리를 수행하고 출력을 인쇄하는 JScript 또는 VBScript를 작성하는 것은 매우 간단하므로 java 또는 Scala 프로세스에서 실행하고 출력을 구문 분석 할 수 있습니다. WMI는 tasklist 이상의 옵션을 제공합니다.

WMI를 선택하면 기존의 java-to-com 라이브러리 중 하나를 사용하여 호출 할 수도 있습니다. JaWin, Jintegra, JInterop.