Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная Статьи Windows Как получить хэндл рабочего стола для манипуляций иконками?

Как получить хэндл рабочего стола для манипуляций иконками?

Оцените материал
(0 голосов)

Как получить хэндл рабочего стола для манипуляций иконками?

Способ первый

function TForm1.GetHandle: HWND;
begin
   // Находим нужное окно в три этапа
   Result := FindWindow( 'Progman', 'Program Manager' );
   // Используем FindWindowEx для нахождения дочернего окна
   Result := FindWindowEx( Result, HWND( nil ), 'SHELLDLL_DefView', '' );
   // SysListView32, это список с иконками на рабочем столе
   Result := FindWindowEx( Result, HWND( nil ), 'SysListView32', '' );
end;

Способ второй

function TForm1.GetHandle: HWND;
var
  s: string;
begin
   // Находим нужное окно в три этапа
   Result := FindWindow( 'Progman', 'Program Manager' );
   // Нахождим дочернее окно
   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;
Прочитано 5957 раз

Авторизация



Счетчики