2009-07-17 6 views
0

私はいくつかの古いVB6コードを取得しています。その中には、CreateToolhelpSnapshotを呼び出してマシン上で実行中のプロセスを列挙しているものがあります。私はWin 2003 R2でこのコードを実行しようとしていますが、復帰するプロセスのリストが少し疑わしい理由があります。私はthis articleを見つけたので、2003年に別のAPIコールを使用する必要があるかもしれません。しかし、Microsoft KnowledgeBaseの記事には触れていません。とにかく私は英語版を見つけることができません。私は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とそれ以降のすべてのバージョンです。
  • MSDNのCreateToolhelp32Snapshotページには、呼び出しが失敗する理由が示されています。 (Windows Server 2003上で動作します:「サポートされている最小のサーバーはWindows 2000 Server」で、API呼び出しは終了していません)
  • CreateToolhelpSnapshotを動作させることができない場合は、Ant's answerでEnumProcessesを使用してください。このメソッドの詳細:VB6のプロセスを列挙する古いMicrosoft Knowledge Base articleは、EnumProcessesを使用することを示しています。 PSAPI.DLLを配布する必要がありますが、Platform SDKで無料です。 EnumProcessesのもう1つのソースは、古くて優れた本Hardcore Visual Basicのもので、現在利用可能なのはfree onlineです。
+0

それはまだ2000年以上で動作していたのか分かりませんでした。ニースを見つける。 – Ant

関連する問題