Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2007, 19:39   #1
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию Потоки и их "нити"

Здравствуйте, может кто сталкивался с "нитями" потоков и как можно получить дескриптор первой нити процесса?

- GetCurrentThread() , вот эта функция получает дескриптор первой нити текушего (своего) процесса.
А требуется другого. (Желательно по PID или имени процесса)
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 14.05.2007, 20:10   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Для получения ID потоков процесса, используй TlHelp32
при снимке используй флаг TH32CS_SNAPTHREAD и укажи ID процесса
потом перечисляй потоки
для получения хендла потока используй, недокументированную

Function OpenThread(dwDesiredAccess: dword;
bInheritHandle: bool;
dwThreadId: dword): dword; stdcall;
external 'kernel32.dll';

аналогично работе с процессами, её нет в стандартных заголовочных файлах

для завершения процесса используй TerminateThread(), странно она есть в стандарных заголовочных файлах

Последний раз редактировалось rpy3uH; 14.05.2007 в 20:25.
rpy3uH вне форума Ответить с цитированием
Старый 14.05.2007, 20:10   #3
Vasya
Форумчанин Подтвердите свой е-майл
 
Аватар для Vasya
 
Регистрация: 21.01.2007
Сообщений: 193
По умолчанию

а разве нити и потоки это не одно и тоже? Это просто термины которые используются в разных ОС и имеют одинаковый смысл.
Vasya вне форума Ответить с цитированием
Старый 14.05.2007, 20:27   #4
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
Для получения ID потоков процесса, используй TlHelp32
при снимке используй флаг TH32CS_SNAPTHREAD и укажи ID процесса
потом перечисляй потоки
TlHelp32 - модуль большой, функцию не подскажете...
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 14.05.2007, 20:38   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

CreateToolhelp32Snapshot
потом
Thread32First
Thread32Next
rpy3uH вне форума Ответить с цитированием
Старый 14.05.2007, 20:54   #6
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
... для завершения процесса используй TerminateThread(), странно она есть в стандарных заголовочных файлах
завершать не придётся, нужно из списка диспетчера задач узнать какой процесс и от какого имени запущен.
(на работе попросили написать "мини диспетчер" для пользователей)
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 14.05.2007, 21:13   #7
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
CreateToolhelp32Snapshot
потом
Thread32First
Thread32Next
В функции CreateToolhelp32Snapshot - первый параметр за что отвечает?
И скажите пожалуйста 1 из параметров.

А в функции Thread32First - второй параметр выдаёт ощибку
"Types of actual and formal var parameters must be identical"
Если тип переменной не TProcessEntry32, то какой?
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 15.05.2007, 20:17   #8
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

первым надо указать TH32CS_SNAPTHREAD вторым укажи ID процесса потоки которого ты хочешь получить, посмотри в архиве есть модуль по работе с потоками, написанный лично мной год назад
Вложения
Тип файла: zip threadadvtools.zip (1.8 Кб, 30 просмотров)
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" Tayfun Свободное общение 3 26.06.2007 20:27