2009-07-17 3 views
0

나는 CreateToolhelpSnapshot에 대한 호출을 통해 컴퓨터에서 실행중인 프로세스를 열거하는 일부 오래된 VB6 코드를 가지고있다. Win 2003 R2에서이 코드를 실행하려고 시도하고 있으며 반환 할 프로세스 목록이 조금 의심 스럽습니다. this article으로 인해 2003 년에 다른 API 호출을 사용해야 할 수도 있습니다. 그러나 Microsoft 기술 자료 문서에서 찾을 수 없습니다. 또는 어쨌든 영어 버전을 찾을 수 없습니다. 나는 the article in German를 찾았지만 나는 독일어를 읽을 수 없다. EnumProcs라는 API를 사용하는 것이 좋다고 생각하지만 Microsoft API 문서 (적어도 msdn.microsoft.com이 아닌)에서는 그러한 API를 찾지 못했습니다.Win 2003에서 VB 6에서 프로세스를 열거하는 방법?

그래서 Windows 2003에서 CreateToolhelpSnapshot을 사용해야합니까, 아니면 사용해야 할 다른 API가 있습니까? 그리고 누구나 내가 KB 기사의 사본을 영어로 어디에서 찾을 수 있는지 알고 있습니까?

답변

2

article은 필요한 것을 수행하는 방법에 대한 포괄적 인 목록을 제공합니다. 기본적으로 GetActiveProcesses 대신 EnumProcesses Windows API 호출을 사용합니다.

Windows Server 2003뿐만 아니라 모든 Windows 버전의 NT 제품군 (XP, Vista 등)입니다.

+0

실제로 NT입니다. CreateToolhelp32Snapshot이 2000에 추가되었지만 여전히 사용 중입니다. http://msdn.microsoft.com/en-us/library/ms682489(VS.85).aspx – MarkJ

+0

좋은 링크를 의미하고, EnumProcesses는 CreateToolhelp32Snapshot이 원하는 결과를 반환하지 않는 경우 시도해 볼 가치가 있습니다. 그러나 CreateToolhelp32Snapshot은 MSDN 문서에 따라 Windows Server 2003에서 작동합니다. – MarkJ

2

Google 번역은 해당 독일어 KB 페이지를 영어 (HOW TO: Enumerate Applications Using Win32 APIs)로 번역하는 훌륭한 작업입니다.

+0

네 말이 맞아. 나는 번역에 익숙해있어 원하는 것을 남겨 두었으므로 그것을 시험해 보지도 않았다. –

3
  • 귀하의 freevbcode.com 기사는 bathroom wall of code의 빨간 청어입니다. CreateToolhelp32Snapshot은 Windows 95, 98 및 Me에서만 작동합니다. 이것은 NT에서 발견되지는 않았지만 한 번 사실이었습니다.하지만 Windows 2000과 이후 버전 모두에 있습니다.
  • CreateToolhelp32Snapshot 비고 섹션의 MSDN 페이지에서 호출이 실패 할 수있는 이유를 제시합니다. (Windows Server 2003에서 작동합니다 : "지원되는 최소 서버는 Windows 2000 Server"이고 API 호출은 폐기되지 않았습니다.)
  • CreateToolhelpSnapshot을 작동시키지 못하면 Ant's answer으로 이동하여 EnumProcesses를 사용하십시오. 이 메서드에 대한 추가 정보 : VB6의 프로세스를 열거하는 이전 Microsoft Knowledge Base articleEnumProcesses을 사용한다는 것을 나타냅니다. PSAPI.DLL을 배포해야하지만 Platform SDK은 무료입니다. EnumProcesses의 또 다른 출처는 오래되었지만 우수한 책인 Hardcore Visual Basic에서 제공되며 현재 free online입니다.
+0

그것이 2000 이상에서 계속 작동하는지 알지 못했습니다. 좋은 발견. – Ant

관련 문제