Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.22;
Скачать: CL | DM;

Вниз

AV в API callback   Найти похожие ветки 

 
RWolf ©   (2011-02-16 12:08) [0]

Что не так в нижеприведённом коде?

procedure EnumerateWindows(const sl: TStrings);
 function EnumWindowProc(Handle: THandle; lParam: integer): BOOL; stdcall;
 var
   nread: DWORD;
   buf: array[1..256] of Char;
   wt: string;
 begin
   result := True;
   nread := GetWindowText(Handle, @buf, 256);
   if nread <> 0 then begin
     SetLength(wt, nread);
     move(buf[1], wt[1], nread);
     sl.Add(wt);
   end;
 end;
begin
 sl.Clear;
 EnumWindows(@EnumWindowProc, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 EnumerateWindows(memo1.Lines);
end;


---------------------------
"Access violation at address 004504CE in module "Project1.exe". Read of address 000000A0".
---------------------------


 
clickmaker ©   (2011-02-16 12:14) [1]

nread := GetWindowTextLength(Handle);
SetLength(wt, nread);
GetWindowText(Handle, PChar(wt), nread);


 
DiamondShark ©   (2011-02-16 12:52) [2]

Вложенную функцию как колбэк передавать?
Свежо.


 
RWolf ©   (2011-02-16 12:55) [3]


> DiamondShark ©   (16.02.11 12:52) [2]

нормально; это я не подумал, что стек сдвинется.
Передача контекста (т.е. sl) через параметр EnumWindows"а помогла.



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

Текущий архив: 2011.05.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
2-1297450505
Женя
2011-02-11 21:55
2011.05.22
Ссылки(2)


2-1297686311
Ghost del vonte
2011-02-14 15:25
2011.05.22
Определение Left и Top у ячейки в DrawGrid


2-1297684583
Den
2011-02-14 14:56
2011.05.22
Уменьшить размер памяти занимаемой приложением


1-1248264361
Enlight
2009-07-22 16:06
2011.05.22
Иконка на таскбаре для каждой формы приложения


15-1296941377
Юрий
2011-02-06 00:29
2011.05.22
С днем рождения ! 6 февраля 2011 воскресенье