賞金將在 3 天后到期。此問題的答案有資格獲得 50聲望賞金。 湯姆想引起更多關注這個問題。
我想從 ALT TAB 中隱藏我的應用程式,而不是從任務欄中隱藏我的應用程式;任務欄現在有一個 OK 圖示,可用于管理工具 GUI。
但是,不需要將應用程式放在 ALT-TAB 可瀏覽視窗串列中,因為應用程式的主視窗實際上是隱藏的。
應用程式視窗通過將其 ALPHA 設定為 0 來隱藏。
uj5u.com熱心網友回復:
- 您必須將 your 設定
Form.BorderStyle為bsSizeToolWinor ,因此它的視窗不會在 對話框bsToolWindow中列出。AltTab - 您必須對
Application.Handle視窗執行相同的操作:
步驟#1 和#2 按預期對我有用:視窗串列中沒有任何內容,任務欄上沒有一個按鈕。procedure TForm1.FormCreate( Sender: TObject ); var iStyle: Integer; begin iStyle:= GetWindowLong( Application.Handle, GWL_EXSTYLE ); SetWindowLong( Application.Handle, GWL_EXSTYLE, iStyle or WS_EX_TOOLWINDOW ); end; - 根據 Remy 單獨添加任務欄按鈕,界面承諾這樣做:
但是:這第三步在 Win7 上對我不起作用 - 盡管沒有發生錯誤,但沒有向任務欄添加按鈕。可能是因為uses ComObj; // From https://github.com/project-jedi/jvcl/blob/master/jvcl/run/JvProgressBar.pas const CLSID_TaskbarList: TGUID= '{56FDF344-FD6D-11d0-958A-006097C9A090}'; type ITaskbarList= interface(IUnknown) ['{56FDF342-FD6D-11D0-958A-006097C9A090}'] function HrInit: HRESULT; stdcall; function AddTab( hwnd: HWND ): HRESULT; stdcall; function DeleteTab( hwnd: HWND ): HRESULT; stdcall; function ActivateTab( hwnd: HWND ): HRESULT; stdcall; function SetActiveAlt( hwnd: HWND ): HRESULT; stdcall; end; var oBar: ITaskbarList= nil; procedure TForm1.Button1Click( Sender: TObject ); begin if oBar= nil then begin // Never used? Try to init. oBar:= CreateComObject( CLSID_TaskbarList ) as ITaskbarList; if oBar.HrInit<> S_OK then oBar:= nil; // Failed? Can't use it. end; if oBar<> nil then begin if oBar.AddTab( self.Handle )= S_OK then self.Caption:= 'Success!'; end; end;- 我禁用了樣式,我的任務欄看起來像在 Win95 中,并且
- T-Clock Redux 2.4.4正在操縱它。
我不鼓勵整個方法:出現在Alt 中Tab的也應該有一個任務欄按鈕,反之亦然。在作業中,有一個煩人的NCP 軟體,它會在成功連接后自動隱藏其視窗,堅持使用任務托盤圖示并在我靠近任務圖示時自動在視窗中滑動,盡管我肯定想點擊另一個。可怕,因為它總是在路上,也不能依靠它來堅持。
這不是你想要的,但你也想強迫不一致。干脆不要。只需發布一個可以使用且預期行為也會發生的應用程式。如果這一切都沒有讓你感動,那么想想你的應用程式將來在仿真中失敗的可能性有多大——不要做不尋常的事情,Wine也不會為所有 Unix 用戶運行它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/432916.html
