Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите с Thread Scan !!!

7.0K
03 июня 2005 года
mixell
28 / / 03.04.2005
погите пожалуйста найти ощибку
со сканированием потоков в процессе - не
могу понять где она -



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% правильный задаю !
12K
04 июня 2005 года
Angels_Sigh
1 / / 04.06.2005
Почти все верно, надо малость только поправить:

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.
7.0K
04 июня 2005 года
mixell
28 / / 03.04.2005
спасибо - я понял просто забыл указать размер
структуры -
но скажите пожалуйста - если я знаю данные
потока - как я могу получить окна находивщиеся
в этом потоке ?
425
06 июня 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by mixell
если я знаю данные
потока - как я могу получить окна находивщиеся
в этом потоке ?

EnumThreadWindows().

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог