Текущий архив: 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.46 MB
Время: 0.043 c