помогите с Thread Scan !!!
со сканированием потоков в процессе - не
могу понять где она -
void BeginThreaded(DWORD id)
{
THREADENTRY32 te;
HANDLE thr = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,id);
if(thr == INVALID_HANDLE_VALUE) {
cout << "error for creating toolhelp....." << endl;
return;
}
if(Thread32First(thr,&te)) {
cout << te.th32ThreadID <<
endl << te.th32OwnerProcessID << endl;
while(Thread32Next(thr,&te)) {
cout << te.th32ThreadID <<
endl << te.th32OwnerProcessID << endl;
}
}
else cout << "error for first start up....." << endl;
}
все время выдаётся - error for first start up.....
хотя id процесса 100% правильный задаю !
THREADENTRY32 te;
HANDLE thr = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,id);
if(thr == INVALID_HANDLE_VALUE) {
cout << "error for creating toolhelp....." << endl;
return 0;
}
/* ОЧЕНЬ ВАЖНАЯ СТРОЧКА */
te.dwSize=sizeof(THREADENTRY32);
if(Thread32First(thr,&te)) {
cout << te.th32ThreadID <<
endl << te.th32OwnerProcessID << endl;
while(Thread32Next(thr,&te)) {
cout << te.th32ThreadID <<
endl << te.th32OwnerProcessID << endl;
}
}
else cout << "error for first start up....." << endl;
return 0;
}
Пачаму так?
MSDN говорит следующее:
The calling application must set the dwSize member of THREADENTRY32 to the size, in bytes, of the structure. Thread32First changes dwSize to the number of bytes written to the structure. This will never be greater than the initial value of dwSize, but it may be smaller. If the value is smaller, do not rely on the values of any members whose offsets are greater than this value.
структуры -
но скажите пожалуйста - если я знаю данные
потока - как я могу получить окна находивщиеся
в этом потоке ?
Цитата:
Originally posted by mixell
если я знаю данные
потока - как я могу получить окна находивщиеся
в этом потоке ?
если я знаю данные
потока - как я могу получить окна находивщиеся
в этом потоке ?
EnumThreadWindows().