Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите плиз!!! [D5, Win2k]


Bukerman ©   (2002-12-16 16:06:00) 

Господа мастаки, бьюсь второй день, не могу понять, может кто подскажет, есть такой код

var
Wnd : HWND;
lpdwProcessId : LPDWORD;
hProcess : Cardinal; // handle to the process
jjj : DWORD;

begin
Wnd := GetWindow(Handle, gw_HWndFirst);
GetWindowThreadProcessId(Wnd, lpdwProcessId);
jjj:=lpdwProcessId^;
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, FALSE, jjj);

в таком виде работает, но выдает warning, что lpdwProcessId may not be initialized, если сначала проинициализировать: lpdwProcessId:=nil;
то компилируется нормально, но в runtime на строке GetWindowThreadProcessId(Wnd, lpdwProcessId);
ругается access violation в модуле user32.dll. Но самое интересное, что если оставить в таком виде (весь остальной код закомментирован), то хоть и выдает ворнинги, но работает, а если
его раскомментировать, то на строке
jjj:=lpdwProcessId^;
опять же access violation, что я делаю не так?


Bukerman   (2002-12-16 17:00:00) [1]

Бооольшое спасибо!Вроде помогло.


MBo   (2002-12-16 16:25:00) [2]

Пардон
ProcessId : DWORD;
GetWindowThreadProcessId(Wnd, @ProcessId);



Zz_   (2002-12-16 16:18:00) [3]

lpdwProcessId := @jjj;
GetWindowThreadProcessId(Wnd, lpdwProcessId);


MBo   (2002-12-16 16:18:00) [4]

ProcessId : DWORD;
GetWindowThreadProcessId(Wnd, ProcessId);


Наверх

Титульная страница Поиск, карта сайта Написать письмо