Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

Как получить ссылку на работающий Thread имея его ID   Найти похожие ветки 

 
slaga ©   (2006-03-24 14:22) [0]

Добрый день.

У меня есть ThreadID, мне нужно остановить, закрыть, удалить этот поток, как мне получить такую возможность ?

Заранее спасибо.


 
Leonid Troyanovsky ©   (2006-03-24 14:24) [1]


> slaga ©   (24.03.06 14:22)  

> У меня есть ThreadID, мне нужно остановить, закрыть, удалить
> этот поток, как мне получить такую возможность ?


OpenThread.
Непонятно, только, что значит закрыть,
да, впрочем, и зачем.

--
Regards, LVT.


 
slaga ©   (2006-03-24 14:27) [2]

спасибо,
а вот такая конструкция не подойдет ?

 PostThreadMessage(ThreadID, WM_CLOSE, 0, 0)


 
Leonid Troyanovsky ©   (2006-03-24 14:32) [3]


> slaga ©   (24.03.06 14:27) [2]

> а вот такая конструкция не подойдет ?

>  PostThreadMessage(ThreadID, WM_CLOSE, 0, 0)


Потоку принято посылать WM_QUIT.
Оно может и подойти, если, конечно, у него
есть message loop.

--
Regards, LVT.


 
slaga ©   (2006-03-24 14:32) [4]

хм. а можна небольшой пример по использованию OpenThread (с подключаемыми модулями)


 
slaga ©   (2006-03-24 14:40) [5]

нашел такое:

function OpenThread(dwDesiredAccess: DWord; bInheritHandle: Bool;
dwThreadId: DWord): DWord; stdcall; external "kernel32.dll";

но не понимаю что с этим делать потом :(


 
Leonid Troyanovsky ©   (2006-03-24 15:25) [6]


> slaga ©   (24.03.06 14:40) [5]
> нашел такое:

> function OpenThread(dwDesiredAccess: DWord; bInheritHandle:
>  Bool;
> dwThreadId: DWord): DWord; stdcall; external "kernel32.dll";
>


Это оно и есть (правда,  результат принято возвращать как THandle ).
Константы dwDesiredAccess можно посмотреть в топике
http://groups.google.com/group/fido7.ru.delphi/browse_frm/thread/60e9dcc14ee5febe/18d621d0da3a07d7?#18d621d0da3a07d7

--
Regards, LVT.


 
slaga ©   (2006-03-24 16:03) [7]

а в каком модуле описывается THREAD_ALL_ACCESS


 
Игорь Шевченко ©   (2006-03-24 16:47) [8]


> а в каком модуле описывается THREAD_ALL_ACCESS


Windows.pas ?


 
Leonid Troyanovsky ©   (2006-03-24 16:54) [9]


> slaga ©   (24.03.06 16:03) [7]

> а в каком модуле описывается THREAD_ALL_ACCESS


В том обсуждении приводились значения

From JwaWinnt.pas available from http://delphi-jedi.org
(Win32 API Package in the API Library section):

THREAD_TERMINATE            = ($0001);
 {$EXTERNALSYM THREAD_TERMINATE}
 THREAD_SUSPEND_RESUME       = ($0002);
 {$EXTERNALSYM THREAD_SUSPEND_RESUME}
 THREAD_GET_CONTEXT          = ($0008);
 {$EXTERNALSYM THREAD_GET_CONTEXT}
 THREAD_SET_CONTEXT          = ($0010);
 {$EXTERNALSYM THREAD_SET_CONTEXT}
 THREAD_SET_INFORMATION      = ($0020);
 {$EXTERNALSYM THREAD_SET_INFORMATION}
 THREAD_QUERY_INFORMATION    = ($0040);
 {$EXTERNALSYM THREAD_QUERY_INFORMATION}
 THREAD_SET_THREAD_TOKEN     = ($0080);
 {$EXTERNALSYM THREAD_SET_THREAD_TOKEN}
 THREAD_IMPERSONATE          = ($0100);
 {$EXTERNALSYM THREAD_IMPERSONATE}
 THREAD_DIRECT_IMPERSONATION = ($0200);
 {$EXTERNALSYM THREAD_DIRECT_IMPERSONATION}

 THREAD_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $3FF);
 {$EXTERNALSYM THREAD_ALL_ACCESS}

 SYNCHRONIZE              = ($00100000);
 {$EXTERNALSYM SYNCHRONIZE}

--
Regards, LVT.


 
slaga ©   (2006-03-24 16:55) [10]

в Windows.pas нет.

мне подсказывают что можно вот так:

const
 THREAD_ALL_ACCESS = $1F03FF;


 
Leonid Troyanovsky ©   (2006-03-24 16:56) [11]


> Игорь Шевченко ©   (24.03.06 16:47) [8]

> Windows.pas ?


Т.е.,  D7+ ?

--
Regards, LVT.


 
Игорь Шевченко ©   (2006-03-24 17:52) [12]

Leonid Troyanovsky ©   (24.03.06 16:56) [11]

Я же знак вопроса поставил :)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
2-1149684223
UniCode
2006-06-07 16:43
2006.06.25
Помогите разобраться с Captions на Unicode


2-1149665351
Alex>
2006-06-07 11:29
2006.06.25
TQuery


4-1143015386
EgorovAlex
2006-03-22 11:16
2006.06.25
Почему ReadPrinter читает с принтера максимум 64Кб данных за одну


5-1134112164
Dioman
2005-12-09 10:09
2006.06.25
как получить хэндл текущего активного окна виндов ?


2-1149615751
VasRoG
2006-06-06 21:42
2006.06.25
Прозрачность





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский