Przechwytywanie momentu kliknięcia

0

Jak wychwycić moment kliknięcia na ikonę dysku lokalnego lub ikonę jakiegoś określonego pliku?

0

Czyba się da ale dla określonego okna np. Mój Komputer można dostac jego uchwyt, z reszztą co jea będe pisał zobacz ten kod:

function EnumChildProc(wnd: HWND; Param: LPARAM): Bool; stdcall;
var
  pc: array[0..$FFF] of Char;
begin
  GetClassName(wnd, pc, sizeof(pc));
  form1.Memo1.Lines.Add(inttostr(wnd) + ' : ' + pc);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  h: Cardinal;
begin
  Memo1.Lines.Clear;
  h:= FindWindow('CabinetWClass', 'My Computer');
  caption:= inttostr(h);
  EnumChildWindows(h, @EnumChildProc, 0);
end;

możemy dostać także uchwyty kontrolek na oknie teraz trzeba zdeterminować na której kontrolce klikamy i podmienić jej WndProc

0

Nie da się zrobić tego Podmianą WndProc ale da się coś pokombinować z SetWindowsHookEx i przechwytywać interesujące komunikaty. Ikonki są na SysListviev32 trzeba znaleŹć komunikaty którymi można pobrać informacje. Te komunikaty są typu LVM_* np LVM_GETNEXTITEM

0

Wielkie dzięki. Popróbuje może się coś uda.

1 użytkowników online, w tym zalogowanych: 0, gości: 1