Windows Mobile 6 を使用してスマートフォン用の小さなアプリを作成しています。現在実行中のすべての processec を取得しようとしていますが、CreateToolhelp32Snapshot メソッドは常に -1 を返します。だから今私は立ち往生しています。GetLastError() メソッドを呼び出してエラーを取得しようとしましたが、そのメソッドは 0 値を返します。これが私のコードのスニペットです。
private const int TH32CS_SNAPPROCESS = 0x00000002;
[DllImport("toolhelp.dll")]
public static extern IntPtr CreateToolhelp32Snapshot(uint flags,
uint processid);
public static Process[] GetProcesses()
{
ArrayList procList = new ArrayList();
IntPtr handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if ((int)handle > 0)
{
try
{
PROCESSENTRY32 peCurr;
PROCESSENTRY32 pe32 = new PROCESSENTRY32();
// get byte array to pass to API call
byte[] peBytes = pe32.ToByteArray();
// get the first process
int retval = Process32First(handle, peBytes);