Показать сообщение отдельно
Старый 20.06.2010, 06:13   #7
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

lam, могут быть неоднозначности когда 2 процесса запускаются почти одновременно..
ProcessExplorer откуда то показывает точные сведения.

Добавлено через 26 минут
О что то нашел, используя Process32First, Process32Next ищем наш процесс. Когда найдем, в возращенной функцией структуре будет все нужное. Сейчас проверю.


typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
ULONG_PTR th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
TCHAR szExeFile[MAX_PATH];
} PROCESSENTRY32, *PPROCESSENTRY32;

Добавлено через 18 часов 5 минут
Все получилось. Вот рабочая функция, может кому пригодится.

delphi Код:
function GetParentProcessID(procID: cardinal): cardinal; var   hSnap: cardinal;   procEntry: tagPROCESSENTRY32; begin   Result:= 0;   hSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);   procEntry.dwSize:= SizeOf(procEntry);   if Process32First(hSnap, procEntry) then   begin     repeat       if procEntry.th32ProcessID = curProcID then       begin         Result:= procEntry.th32ParentProcessID;         break;       end;     until not Process32Next(hSnap, procEntry);   end   else   begin     ShowMessage(SysErrorMessage(GetLastError));   end;   CloseHandle(hSnap); end;
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 20.06.2010 в 06:15. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием