Chowanie przycisków na pasku zadań [Windows]

0

Spotkał się ktoś z jakimś mini programem, który umożliwiałby schowanie/przywrócenie wybranych przycisków na taskbarze pozostawiając nietknięte okna programów i zezwalający na przełączanie się do tych programów nadal poprzez [alt]+[tab]?

Ot, w pracy sporo programów otwartych, wszystkie potrzebne, ale niektóre rzadko używane i przełączenie skrótem by wystarczyło, a schowanie guzików zmniejszyłoby chaos na pasku zadań.

O ile pamiętam, to jedna flaga dla okna głównego, więc taki program nie powinien być trudny, a czasu na pisanie samemu nie mam (aż tak mnie nie ciśnie, o tak to ujmę).

0

a to by nie stykalo, ma liste z prawgo klika w trayu i mozna ukryc albo pokazac

0

Chyba nie jarzę..
te programy, które chcę wywalić z taskbara nie mają ikonek w systemtray

0

moze cos ala CaptainTray ? przenosi z taskbara na tray lub w ogole chowa

0

Marooned, a nie lepiej coś do wirtualnych pulpitów zainstalować?

0

Nie trawię wirtualnych pulpitów, strasznie utrudniają pracę. Żeby nie było, przez dobre parę m-cy miałem zainstalowane takie ustrojstwo i się nie przekonałem.

Obadam tego CapitanTray, thx za namiar.

0
Marooned napisał(a)

Chyba nie jarzę..
te programy, które chcę wywalić z taskbara nie mają ikonek w systemtray

A popatrzyles jak dziala :), w trayu jest jedna ikonka i z niej menu ukryj/pokaz lista okien

0

reichel, ale nie dałeś linka ani nazwy żadnego programu, dlatego nie zjarzyłem o czym piszesz :)

0

he he ale ze mnie .....

http://www.expocenter.com/hideit/

przepraszam

0

Niestety, oba programy usuwając przyciski usuwają je także z kolejki alt+tab. Lipa.

0

Taka magia WS_EX_TOOLWINDOW :)

0

Ostatnio przy okazji grzebania w czeluściach WinAPI otarłem się o temat, więc dla starego kumpla oto proof-of-concept:

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, ShlObj, ActiveX, StdCtrls;

const CLSID_TaskbarList:TGUID='{56FDF344-FD6D-11d0-958A-006097C9A090}';
const IID_ITaskBarList:TGUID='{56FDF342-FD6D-11d0-958A-006097C9A090}';

type
  ITaskBarList = interface(IUnknown)
    ['{56FDF342-FD6D-11D0-958A-006097C9A090}']
    function HrInit():HRESULT; stdcall;
    function AddTab(hwnd:THandle):HRESULT; stdcall;
    function DeleteTab(hwnd:THandle):HRESULT; stdcall;
    function ActivateTab(hwnd:THandle):HRESULT; stdcall;
    function SetActiveAlt(hwnd:THandle):HRESULT; stdcall;
  end;
  
type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    taskbar:ITaskBarList;
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
  taskbar.HrInit;
  taskbar.DeleteTab(Application.Handle);
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  CoInitializeEx(nil,0);
  CoCreateInstance(CLSID_TaskbarList, nil, CLSCTX_INPROC_SERVER, IID_ITaskBarList, taskbar);
end;

end.

Trzeba uruchamiać exeka jako samodzielną aplikację (spoza delphi).

Naciśnięcie buttona spowoduje zniknięcie aplikacji z paska zadań, ale nie z alt-taba. Teraz wystarczy w DeleteTab() podać handelek do innego okna.
Zgrzyt jest taki, że reaktywowanie "znikniętego" okna powoduje, że przycisk na pasku zadań powróci. Ale to już w ramach zadania domowego... ;-)

Link do EXE - demonstracja: http://wswiktor.fm.interia.pl/znikacz.exe

</url>

1 użytkowników online, w tym zalogowanych: 0, gości: 1