![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перемещение ярлыков [D7, Win2k, WinXP]
apic © (2008-07-21 14:42:00)У меня следующая проблема! Мне необходимо программно менять координаты расположения ярлыков на рабочем столе. Причем менять координаты необходимо в зависимости от названия ярлыка, например ярлыку "notepad" необходимо установить координаты х=100, у=200.
apic (2008-10-30 08:18:00) [1]Нет через три месяца до инета добрался, так надоже отблагодарить!!!!
Rouse_ (2008-10-29 14:03:00) [2]Эмм... ты три месяца что-ли пробовал? :))))
apic (2008-10-29 10:20:00) [3]Все получилось!
apic (2008-07-23 07:23:00) [4]Всем спасибо, сейчас все попробую!
apic (2008-07-23 07:23:00) [5]Удалено модератором
oldman (2008-07-21 16:47:00) [6]
> apic (21.07.08 14:42)
> например ярлыку "notepad" необходимо установить координаты
> х=100, у=200.
Не забудь проверить, не находится ли по этим координатам другой (очень нужный) ярлык...
Rouse_ (2008-07-21 16:40:00) [7]
> ListView_SetItemPosition
А структурку кто в чужое ВАП перемещать будет? :)
Что-то наподобие этого должно быть:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1215465648&n=18
Vlad Oshin (2008-07-21 16:30:00) [8]не получилось, делал так
procedure TForm3.Button1Click(Sender: TObject);
var
i,DT,x,y:integer;
aa: TLVFindInfo;
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;
begin
x:=150;
y:=150;
DT:=GetDesktopListViewHandle;
// думаю тут надо как-то поиграться, хелп почитать
aa.flags:=LVFI_STRING or LVFI_PARTIAL;
aa.psz:=pchar('txt');
i:=ListView_FindItem(DT,-1,aa);
ListView_SetItemPosition(DT,i,x,y);
end;
apic (2008-07-21 15:38:00) [9]Большое спасибо Vlad Oshin, но у меня уже есть подоюный кусок кода, вся проблема в том, как узнать порядковый номер ярлыка с названием "notepad" или "MS Office", к примеру...
Vlad Oshin (2008-07-21 15:17:00) [10]uses CommCtrl;
procedure TForm3.Button1Click(Sender: TObject);
var
i,x,y:integer;
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;
begin
i:=2;
x:=150;
y:=150;
ListView_SetItemPosition(GetDesktopListViewHandle,i,x,y);
end;
apic (2008-07-21 15:07:00) [11]Зачем и кому я меняю это мой понт! Прошу от сарказма воздержаться! Не знаете решение проблемы, не надо засарять форум, а за помощь буду благодарен!
oldman (2008-07-21 14:54:00) [12]кому менять?
себе?
пользоателю?
У меня, например, ярлыки стоят так, как надо мне.
Поменяешь - убью!