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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-59207
Stream2k
2002-11-05 16:18
2002.11.18
Есть форма на ней два TRichEdit и кнопка TButton...


14-59427
Johnny Smith
2002-10-31 10:02
2002.11.18
Объявляется набор в молодую перспективную группу


8-59285
_alx_
2002-07-22 15:25
2002.11.18
ПОворот канваса


8-59291
login2
2002-07-30 11:18
2002.11.18
Работа с палитрой


14-59408
esu
2002-10-31 05:08
2002.11.18
Можно ли в списке компонент сделать заголовки в несколько строк ?





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