Форум: "WinAPI";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизКак по хендлу SysListView32 получитьсписок всех его элементов? Найти похожие ветки
← →
volser (2005-01-18 10:33) [0]Помогите по сабжу плз.
← →
volser (2005-01-18 16:49) [1]
function GetDesktopListViewHandle: THandle;
var
S: String;
begin
Result := FindWindow("ProgMan", nil);
Result := GetWindow(Result, GW_CHILD);
Result := GetWindow(Result, GW_CHILD);
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> "SysListView32" then Result := 0;
end;
...
var
Item: TLVItem;
begin
ListView_Handle := GetDesktopListViewHandle;
ZeroMemory(@item,sizeof(item));
if ListView_GetItem(ListView_Handle, Item) then ShowMessage("Cool");
Что у меня не правильно?
Хендл ListView берется правиль (я пробовал его прятать и показывать), а функция ListView_GetItem не пашет.
← →
jonni © (2005-01-18 21:48) [2]na skol"ko ya ponimayu ti ne smozhehs nikogda vot tak prosto poluchit" dannie NE IZ svoego processa... tebe snachalo nado otkrit" process... videlit" pamayt"... poluchit" dannie..... itd...
naprimer vot: http://www.delphiworld.narod.ru/base/dt_icons_pos_g_s.html
(ne sovsem konechno ideal"niy primer.. no pervoe chto popalos" pod ruku...)
hotya po inetu polno ssilok.....
← →
volser (2005-01-19 12:36) [3]
AttachThreadInputc:=ListView_GetItemCount(ListViewHandle);
GetMem(Buf,255);
for i:=0 to c-1 do
begin
ListView_GetItemText(ListViewHandle,i,0,Buf,255);
memo1.Lines.Add(IntToStr(i) +":"+ buf);
end;
AttachThreadInput(GetCurrentThreadId,GetWindowThreadProcessId(ListViewHandle),False);
Ну вот приатачался. Что здесь не так?
← →
Игорь Шевченко © (2005-01-19 12:40) [4]Рихтера читать
← →
volser (2005-01-19 13:01) [5]К сожалению не имеется такой литературы.
Может все таки просветишь?
← →
volser (2005-01-19 13:04) [6]Посмотрел пример.
Через CreateRemoteBuffer получаю, а с imagelistом никах.
Вот кусочек кода
nb := SendMessage(LVH, LVM_GETIMAGELIST, LVSIL_NORMAL, 0);
ReadRemoteBuffer(Base2, @h, SizeOf(h));
Form1.ImageList1.Handle:=h;
ShowMessage(IntToStr(Form1.ImageList1.Count));
модификация примера.
Но выводит 0. Как тогда imagelist получать?
← →
jonni © (2005-01-19 22:03) [7]nu chto mozhet bit" naprimer....
----------------
http://support.microsoft.com/default.aspx?scid=kb;en-us;811415
However, when you do this on a computer running Windows XP, the wrong handle is returned. If you call any other APIs, and then
pass this handle, those API calls will not function correctly.
----------------
mozhet ono i ne dolzhno rabotat"?? kakoy u tebya Windows?
← →
jonni © (2005-01-19 22:10) [8]est" vot takoy primer......
il : array[0..$3FF] of char;
twi.iconList: Cardinal;
ReadProcessMemory(ph,POINTER(twi.iconList),@il,sizeof(il),c1);
ico := TIcon.Create;
ico.Handle := ImageList_ExtractIcon(0,cardinal(@il),ImageIndex);
na skol"ko pravil"no eto napisnao ne znayu.....no vot tochno rabotaet v windows nizhe i vklyuchaya 2K.. v windows vishe ne proveryal.......
← →
volser (2005-01-19 23:58) [9]У меня XP
← →
volser (2005-01-20 00:01) [10]jonni
Что много не понятного в твоем коде.
Что такое twi, ph, c1?
Можешь кинуть более детальный код?
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c