treba mi nachin da iskljuchim Auto Arrange i Align to Grid sa destopa preko moje aplikacije...
ljudi, jel neko zna da manipulishe sa desktopom
Zaključano
Zakačeno
Radio sam neke igrarije sa Desktop-om, vrlo slicno ovome sto zelis. Medjutim, nisam pri svojoj masini, pa nemam kod. Za par dana, ako ne dobijes odgovor, dobices ga od mene.
Radi se sa WinAPI-jem, prvo pronadjes HWND kontrole u kojoj se prikazuju ikonice (moze da se nadje po imenu klase, jedinstveno je) (FindWindow, FindWindowEx), a zatim sa njim manipulises porukama (SendMessage). Moze svasta da se radi.
Radi se sa WinAPI-jem, prvo pronadjes HWND kontrole u kojoj se prikazuju ikonice (moze da se nadje po imenu klase, jedinstveno je) (FindWindow, FindWindowEx), a zatim sa njim manipulises porukama (SendMessage). Moze svasta da se radi.
postavljao sam temu na vishe foruma i niko nije do sada odgovarao na nju...
uglavnom kopkao sam oko HWND samo nisam znao kako treba da glasi SendMessage, ajd poshali mi kod i ako mozes malo da mi pojasnis kako dolazish do tih WinAPI-ja...
uglavnom kopkao sam oko HWND samo nisam znao kako treba da glasi SendMessage, ajd poshali mi kod i ako mozes malo da mi pojasnis kako dolazish do tih WinAPI-ja...
Kod iskljucuje AutoArange (za ukljucivanje umesto and not pises samo and).
Za SnapToGrid nisam nasao nista, mozda ima u novijem SDK-u, ja imam stari,
onaj koji dolazi uz D7.
Do WinApi-ja dolazis ubacivanjem stavke Windows u uses klauzulu.
Dodatno, mozes skinuti JEDI Windows API Library, koja je azurnija
od one koju dobijas uz Delphi. Za info o funkcijama - Windows SDK.
procedure TForm1.Button1Click(Sender: TObject);
var
hendl: HWND;
dwStyle: DWORD;
const
LVS_AUTOARRANGE = $0100;
begin
hendl := FindWindow('Progman', 'Program Manager');
hendl := FindWindowEx(hendl, 0, 'SHELLDLL_DefView', 0);
hendl := FindWindowEx(hendl, 0, 'SysListView32', 0); // OVO JE DESKTOP!!!
dwStyle := GetWindowLong(hendl, GWL_STYLE);
SetWindowLong(hendl, GWL_STYLE, dwStyle and not LVS_AUTOARRANGE);
end;
Bug - Ukljuci Auto Arrange na Desktop-u. Iskljuci ga ovom funkcijom. Auto Arange ostaje stikliran u Meniju. Kada ga iskljucis preko menija, Auto Arange ce se ukljuciti, a meni ce biti nestikliran. Ovakvo "kontra" ponasanje se zadrzava cak i nakon restarta :)))
Za SnapToGrid nisam nasao nista, mozda ima u novijem SDK-u, ja imam stari,
onaj koji dolazi uz D7.
Do WinApi-ja dolazis ubacivanjem stavke Windows u uses klauzulu.
Dodatno, mozes skinuti JEDI Windows API Library, koja je azurnija
od one koju dobijas uz Delphi. Za info o funkcijama - Windows SDK.
procedure TForm1.Button1Click(Sender: TObject);
var
hendl: HWND;
dwStyle: DWORD;
const
LVS_AUTOARRANGE = $0100;
begin
hendl := FindWindow('Progman', 'Program Manager');
hendl := FindWindowEx(hendl, 0, 'SHELLDLL_DefView', 0);
hendl := FindWindowEx(hendl, 0, 'SysListView32', 0); // OVO JE DESKTOP!!!
dwStyle := GetWindowLong(hendl, GWL_STYLE);
SetWindowLong(hendl, GWL_STYLE, dwStyle and not LVS_AUTOARRANGE);
end;
Bug - Ukljuci Auto Arrange na Desktop-u. Iskljuci ga ovom funkcijom. Auto Arange ostaje stikliran u Meniju. Kada ga iskljucis preko menija, Auto Arange ce se ukljuciti, a meni ce biti nestikliran. Ovakvo "kontra" ponasanje se zadrzava cak i nakon restarta :)))