Панель задач

  • Автор темы DriveSoftware
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DriveSoftware

#1
Пытаюсь выставить нужные размеры в панели задач, но они все время возвращаются к исходным значения (через секунду), как зафиксировать их размеры??? под WinMe

Код:
procedure TForm1.GetHandles;
begin
hSysTab:=FindWindow('Shell_TrayWnd', nil);
hSysTab:=FindWindowEx(hSysTab, 0, 'ReBarWindow32', nil); {панель задач}

hTray:=FindWindow('Shell_TrayWnd', nil);
hTray:=FindWindowEx(hTray, 0, 'TrayNotifyWnd', nil); {иконки в трее с часами}

hTime:=FindWindow('Shell_TrayWnd', nil);
hTime:=FindWindowEx(hTime, 0, 'TrayNotifyWnd', nil);
hTime:=FindWindowEx(hTime, 0, 'TrayClockWClass', nil); {часы}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
GetHandles; {получаем хендлы}
SetWindowPos(hSysTab, 0, 0, 0, 794, 22, SWP_NOMOVE);  {меняем размеры панели задач}
SetWindowPos(hTray, 0, 855, 0, 165, 22, SWP_SHOWWINDOW); {размер и позицию иконок с часами}
SetWindowPos(hTime, 0, 0, 0, 102, 20, SWP_NOMOVE); {размер часов}
end;
хочу вместо стандартных часов в трее запихнуть свои, но большего размера :D
 

admin

Well-known member
08.08.2003
2 754
0
#2
DriveSoftware
Вообще-то трудно сказать :)
Можно посадить это на таймер. Можно ловить сообщение WM_SIZE от 'TrayClockWClass'.
А знаешь часики Chameleon Clock? Может просто поинтересоваться у Юры Герасимова как он это сделал?
 
D

DriveSoftware

#3
Серёга

А знаешь часики Chameleon Clock? Может просто поинтересоваться у Юры Герасимова как он это сделал?
Знаю и того и другого, переписывался :) Придется поинтересоваться.
Хорошие часики, делал я что то наподобие, точнее один в один, плагиат млин, проект закрыл.
Надеюсь он не пощитает плагиатом мой компонент, ведь он тоже один в один :)
 

admin

Well-known member
08.08.2003
2 754
0
#4
DriveSoftware
Ну как там с часиками :) Кстати я так подумал. Проблему можно только хуком рещить видимо.
 
D

DriveSoftware

#5
Серёга


Ну как там с часиками Кстати я так подумал. Проблему можно только хуком рещить видимо.
возможно, но у Chameleon Clock думаю что сделано по другому, он просто останавливает работу часов, в этом можно убедиться если минуты на две засунуть часы в трей, потом убрать и они покажут старое время.
 

admin

Well-known member
08.08.2003
2 754
0
#6
DriveSoftware
Не знаю. Я вот сделал уже хук. От через WinAPI рисует время вместо стандартных часов. Главное работет. Надо всего лишь обрабатывать message WM_USER+100 :) Это значит что винда ожидает ресайза часиков.
 
Статус
Закрыто для дальнейших ответов.