Hey, im doing a little app for my smart phone, using Windows Mobile 6. I’m trying to get all currently running processec, but method CreateToolhelp32Snapshot always returns -1. So now im stuck. I tried to get error with invoking GetLastError() method, but that method returns 0 value. Here is a snippet of my code.
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);
As a side note, the Smart Device Framework‘s OpenNETCF.ToolHelp namespace has all of this implemented and working (in case you’d rather not reinvent the wheel).