2012-08-22 1 views
1

Process.Start(filepath)을 직접 호출하여 이미지 파일이나 비디오 또는 웹 사이트를 열려고하면 일반적으로 성공합니다. 그러나 Process.Start의 반환 값은 null 일 수 있습니다. (As discussed here)Process.Start가 null을 반환 할 때 프로세스 ID 찾기?

관련 프로세스의 ID를 알아야 나중에 필요한 정보를 검색하고 필요할 경우 닫을 수 있습니다. (사용 사례 : 사용자가 내 프로그램을 사용하여 이미지 파일을 열고 내 프로그램을 사용하여 이미지 파일을 닫으려고합니다.) 그러나 null을 반환하는 프로세스의 프로세스 ID를 검색하는 것은 어렵습니다. P

필자가 직면 할 수있는 각 파일 유형에 대해 어떤 프로그램을 사용할지 직접 지정하는 것 외에는이 문제를 해결해야합니까?

+2

이미지/비디오/무엇이든 * 새로운 * 프로세스를 시작했지만 기존 프로세스에서 열었 으면 무엇을하고 싶습니까? * 다른 파일들과 함께 여전히 유용했던 장기 실행 프로세스가 갑자기 닫힌다면 나는 꽤 미안 할 것이다 ... –

+0

그건이 소프트웨어의 목적이 아니다. 이런 방식으로 이미지를 만드는 경우, 이미지가 현재 실행중인 다른 이미지 뷰어/프로세스와 별도로 열리기를 원하기 때문입니다. 단순히 이미지를 변경하기를 원한다면 OS와 상호 작용하여 직접 변경할 수 있습니다. (기본적으로 비즈니스 규칙) –

답변

1

프로세스의 ID를 얻기 위해 사용할 프로그램을 직접 지정해야합니다. os에 해당 프로그램의 목록이 있으므로 각 프로그램에서 사용할 프로그램을 OS에 요청할 수 있습니다.

+0

이것은 레지스트리 키에 따라 달라질 수 있습니까? 그것이 Google을 사용하여 찾을 수있는 것입니다. 그렇지 않으면 모두가 Process.Start를 사용한다고 말했지만, 분명히 내가하는 모든 정보가 필요하지는 않습니다. EDIT :이 문제를 발견했습니다. 문제를 해결할 수 있을지는 모르지만 다소 지저분 할 것입니다. :( http://stackoverflow.com/a/162371/1233949 –

+0

그럴만 한 가치가 있습니다. –

관련 문제