Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

включить auto-hide taskbar на Делфи   Найти похожие ветки 

 
Ландграф Павел ©   (2005-09-01 12:11) [0]

Подскажите как программно включить/выключить эту опцию, при условии совместимости со всеми версиями начиная с 98.


 
xmed ©   (2005-09-02 15:09) [1]

procedure TaskBar( Turn:Boolean );
var
   hTaskBar : THandle;
begin
   hTaskbar := FindWindow( "Shell_TrayWnd", Nil );
   if Turn then begin
       ShowWindow( hTaskBar, SW_SHOWNORMAL );
   end else begin
       ShowWindow( hTaskBar, SW_HIDE );
   end;
end


 
Ландграф Павел ©   (2005-09-02 17:25) [2]

Енто не то... можешь проверить сам и найти отличия=) када SW_HIDE то эту панельку оттуда уже никак не вытащишь, а мне надо чтобы именно AUTO-hide, т.е. мышильду опускаем вниз - панелька выехала


 
xmed ©   (2005-09-02 17:43) [3]

тода Regedit там надо искать


 
Ландграф мобил=)   (2005-09-02 19:50) [4]

Нашел, но в каждой винде по разному=(


 
Турист   (2005-09-03 12:56) [5]

Вроде работает


const
 ABM_SETSTATE = $0000000a;

procedure AutoHideTaskBar(aAutoHide: Boolean);
var
 BarData: TAppBarData;
 dwState, dwNewState: DWord;
begin
 FillChar(BarData, SizeOf(BarData), 0);
 BarData.cbSize := SizeOf(BarData);
 dwState := SHAppBarMessage(ABM_GETSTATE, BarData);
 if aAutoHide then
   dwNewState := dwState or ABS_AUTOHIDE
 else
   dwNewState := dwState and not ABS_AUTOHIDE;
 if dwState <> dwNewState then begin
   BarData.lParam := dwNewState;
   SHAppBarMessage(ABM_SETSTATE, BarData)
 end
end;



 
Турист   (2005-09-03 13:27) [6]

>Турист   (03.09.05 12:56) [5]
К сожалению, для Windows XP


 
Турист   (2005-09-03 16:34) [7]

:-)


procedure HardAutoHideTaskBar(aAutoHide: Boolean);
var
 bNewState: Byte;
 Buffer: array[0..255] of Byte;
 hExplorer: THandle;
 dwExplorerID: DWord;
 dwSettingsSize: DWord;
begin
 with TRegistry.Create do try
   if OpenKey("Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2", False) or
      OpenKey("Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects", False) then begin
     dwSettingsSize := ReadBinaryData("Settings", Buffer, SizeOf(Buffer));
     if (dwSettingsSize > 0) then begin
       if aAutoHide then
         bNewState := Buffer[8] or 1
       else
         bNewState := Buffer[8] and not 1;
       if bNewState <> Buffer[8] then begin
         Buffer[8] := bNewState;
         WriteBinaryData("Settings", Buffer, dwSettingsSize);
       end
     end
   end
 finally
   Free
 end;
 if GetWindowThreadProcessId(FindWindow("Shell_TrayWnd", nil), dwExplorerID) <> 0 then begin
   hExplorer := OpenProcess(SYNCHRONIZE or PROCESS_TERMINATE, FALSE, dwExplorerID);
   if hExplorer <> 0 then try
     TerminateProcess(hExplorer, 0)
   finally
     CloseHandle(hExplorer)
   end
 end;
 if GetWindowThreadProcessId(FindWindow("Shell_TrayWnd", nil), dwExplorerID) = 0 then
   WinExec("explorer.exe", SW_SHOWNORMAL)
end;


 
Ландграф Павел ©   (2005-09-03 18:36) [8]

СенькЫсь! под 98 буду отдельно писать.. или плюнуть на них!?=)



Страницы: 1 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.075 c
3-1127563236
ZSergey
2005-09-24 16:00
2005.11.06
Как получить значение поля ...


2-1129133467
Gero
2005-10-12 20:11
2005.11.06
Тест


6-1117384270
Flame
2005-05-29 20:31
2005.11.06
проблемка с twebbrowser


2-1128311386
Queer
2005-10-03 07:49
2005.11.06
mpeg2


6-1121168732
kot andrei
2005-07-12 15:45
2005.11.06
mac адреса