Рабочий стол перекрыт сверху компонентом ListView. Вам просто необходимо взять хэндл этого органа управления. Пример:

 

Code:

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;

 

После того, как Вы взяли тот хэндл, Вы можете использовать API этого ListView, определенный в модуле CommCtrl, для того, чтобы манипулировать рабочим столом. Смотрите тему "LVM_xxxx messages" в оперативной справке по Win32.

 

К примеру, следующая строка кода:

 

Code:

SendMessage(GetDesktopListViewHandle, LVM_ALIGN, LVA_ALIGNLEFT, 0);

 

разместит иконки рабочего стола по левой стороне рабочего стола Windows.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить