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

Вниз

Как получить указатель на поток, имея ...   Найти похожие ветки 

 
8ung ©   (2004-04-28 18:13) [0]

Доброго времени суток! Мастера, помогите...
Как получить указатель на поток, имея хендл его окна, хендл процесса, id процесса. Вроде всё.
Помогите, пожалуйста. очень нужно.


 
VMcL ©   (2004-04-28 18:21) [1]

Указатель на поток? Я о таком понятии/термине не слышал. Что имеется в виду?


 
8ung ©   (2004-04-28 18:23) [2]

hThread


 
8ung ©   (2004-04-28 18:30) [3]

Да, я немного неправильно сказал. Вообщем, мне нужно производить чтение-запись в память определённого процесса. Это можно делать путем Read/WriteProcessMemory. Там в параметрах(функции) есть hprocess. Мне нужно узнать этот hProcess у определённого окна.
Всё работает, когда я сам создаю процесс.

var
i:cardinal;
sti:tstartupinfo;
lpPi:tprocessinformation;
...
{if not CreateProcess(nil,"C:\myfile.exe",nil,nil,false,CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,nil,nil,StI,lpPI) then
begin
messageboxa(0,"Error!",appname,MB_ICONERROR);
halt;
end
else  
...  
readprocessmemory(lppi.hProcess,pointer$1005194),@buffer,1,i).

Так все работает. Но мне нужно, чтобы я не создавал новый процесс, а присоединялся к созданному...


 
VMcL ©   (2004-04-28 18:33) [4]

>>8ung ©  (28.04.04 18:30) [3]

OpenProcess() + CloseHandle()


 
8ung ©   (2004-04-28 18:41) [5]

Блин, чего-то я совсем... Не могу никак сделать то, что мне нужно. Исходником не поделитесь? Очень признателен буду. Или хотябы метод реализации задуманного подскажите, плиз.


 
VMcL ©   (2004-04-28 18:42) [6]

А FAQ уже типа не рулит?

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621310&n=15


 
8ung ©   (2004-04-28 18:51) [7]

Так там процесс открывается, а мне нужно уже в открытом


 
VMcL ©   (2004-04-28 19:05) [8]

Вместо CreateProcess - OpenProcess с имеющимся у тебя ID процесса в качестве параметра dwProcessId. Получишь хендл процесса (в примере - PI.hProcess). Дальше аналогично.


 
8ung ©   (2004-04-28 19:09) [9]

Щас попробую


 
8ung ©   (2004-04-28 19:23) [10]

Неа. Так не работает ReadProcessMemory


 
VMcL ©   (2004-04-28 19:39) [11]

>>8ung ©  (28.04.04 19:23) [10]

Ну я ж надеюсь, ты знаешь в какой строке ошибка?


 
8ung ©   (2004-04-28 19:42) [12]

нет, не знаю. Компилятор никаких ошибок не выдаёт, просто ReadProcessMemory ничего не читает и возвращает false.


 
8ung ©   (2004-04-28 19:45) [13]

Блин, правда нашёл ошибку!
У меня было
lppi.hProcess := openprocess(1,true,$CA0)
Я изменил на и всё заработало!
lppi.hProcess := openprocess(PROCESS_ALL_ACCESS,true,$CA0).
Огромное спасибо! Премного благодарен. Вообще спасибо, спасибо, спасибо!!


 
VMcL ©   (2004-04-28 19:52) [14]

>>8ung ©  (28.04.04 19:45) [13]

RaiseLastWin32Error (RaiseLastOSError) рулит вообще-то.


 
Alexander666 ©   (2004-04-30 03:53) [15]

GetLastError рулезней :-)



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

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

Наверх





Память: 0.47 MB
Время: 0.8 c
6-1081295507
juggler
2004-04-07 03:51
2004.05.30
IEParser и событие OnNewWindow2


14-1084037763
TCrash
2004-05-08 21:36
2004.05.30
Плиз, очень нуна


1-1084967677
TUser
2004-05-19 15:54
2004.05.30
TListItems.Add


3-1083828056
HPR
2004-05-06 11:20
2004.05.30
Чтение текста из DBGrid


8-1079200504
Step[B.M.]
2004-03-13 20:55
2004.05.30
Кто работает с компоненами WaveAudio.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский