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

Вниз

Сохранение координат иконок на декстопе. Взгляните.   Найти похожие ветки 

 
neodiX ©   (2002-11-07 15:36) [0]

Всем привет!
Дело в том, что я знаю как это сделать, но я сделал по Рихтер"скому методу. Там используется метод внедрения в процесс Explorer"a, Длл и т.д. Но вот нашел в инете более простой способ, но он не пашет :( Вроде принцип тот же: во время посылки мессаги LV_GETITEMPOSITION в параметре Lparam передается указатель на структуру TLVITEM, ясно что указатель надо сделать глобальным, т.е. сделать проекцию файла. Ниже приведен код, в котором я не могу найти ошибку и потому не могу понять почему он не пашет. Может кто поможет разобраться? Все же хочется использовать более легкий варинат.
program nevermind;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,commctrl,registry,
ipcthrd;
const g="{270D73EA-C981-4D4B-93E5-1D1E6D28483E}";
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
PInfo = ^TInfo;
TInfo = packed record
infoPoint: TPoint;
infoText: array[0..255] of Char;
infoItem: TLVItem;
infoFindInfo: TLVFindInfo;
end;
var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Info: PInfo;
Wnd: HWnd;
Count, I: Integer;
SharedMem: TSharedMem;
f:textfile;
maphandle:thandle;
begin
try
assignfile(f,"haja.txt");
rewrite(f);
Wnd := GetWindow(GetWindow(FindWindow("ProgMan",nil),GW_CHILD),GW_CHILD);
Count := ListView_GetItemCount(Wnd);
MapHandle:=CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE,
0, SizeOf(TInfo), g);
info:=MapViewOfFile(MapHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TInfo));
Info^.infoItem.pszText := Info^.infoText;
Info^.infoItem.cchTextMax := 255;
Info^.infoItem.mask := LVIF_TEXT;
for i := 0 to Count - 1 do begin
Info^.infoItem.iItem := i;
ListView_GetItem(Wnd, Info^.infoItem);
ListView_GetItemPosition(Wnd, I, Info^.infoPoint);
writeln(f,Format("%.4d, %.4d",[Info^.infoPoint.X, Info^.infoPoint.Y]));
end;
finally
UnMapViewOfFile(info);
CloseHandle(MapHandle);
closefile(f);
end;
end;
end.


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


 
neodiX ©   (2002-11-08 11:48) [1]

А может, вообще, кто нибуть знает вариант без длл файла?


 
Cobalt ©   (2002-11-09 12:58) [2]

В том-то и проблема, что проекция файла делается только на твоё Адр. Пр-во. Без внедрения не обойтись...



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
14-59392
HardJ
2002-10-30 10:50
2002.11.18
Мастаки нужна помощь.


7-59464
yem
2002-09-15 10:40
2002.11.18
модем? asyncpro???


1-59176
GOD
2002-11-09 02:41
2002.11.18
БАГ и как с ним бороться!!!


7-59466
Sergey V. Shadrin
2002-09-16 09:17
2002.11.18
eventlog


4-59481
Beginer1
2002-10-07 16:35
2002.11.18
FindFirstFile