在Delphi 5上運行的服務應用程序旨在運行在Windows XP - 7.大多數應用程序很好地融合在一起,但我遇到了一個問題。此服務應用程序的一部分是偶爾顯示數據的表單(類似於Avast用於通知您更新的滑塊)。當服務顯示錶單時,表單顯示在任務欄上,但我們不希望它顯示。有沒有人對如何在taksbar上隱藏窗體按鈕有任何建議?我發現的常規應用程序的標準方法到目前爲止都沒有工作。謝謝。服務應用程序太可見
回答
重寫表單的CreateParams
方法並將WS_EX_TOOLWINDOW
值添加到Params.ExStyle
字段。這將標記爲一個工具窗口,它不會有任務欄條目。
現在很好用。謝謝。 – 2010-04-08 15:06:42
發現這對http://delphi.about.com/od/adptips1999/qt/hidefromtaskbar.htm
procedure TMainForm.FormCreate(Sender: TObject) ;
begin
ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;
end;
用Delphi 2007,隱藏任務欄按鈕,你將需要幾行代碼:
設置MainFormOnTaskBar爲FALSE
裏面的主窗體的OnShow中事件處理程序調用
ShowWindow(Application.Handle, SW_HIDE);
裏面主窗體的OnActivate事件處理程序調用
ShowWindow(Application.Handle, SW_HIDE);
是的,我也發現了這一點,但不幸的是,它沒有工作,因爲它針對的是winforms應用程序,而不是服務應用程序(不同的應用程序變量類型)。不過謝謝。 – 2010-04-08 00:01:01
聽起來好像您設想有一個通知區域圖標(a.k.a.系統托盤圖標)通知用戶有關服務中/與服務有關的事件。
您需要將服務的GUI方面與服務本身分開,並使用某種IPC來允許托盤圖標小程序根據需要與服務進行通信。根據IPC的需要,這可能是一個命名管道,共享訪問內存映射文件或更復雜的東西。
然後,用於管理GUI w.r.t任務欄行爲的技術應按預期工作。
- 1. 服務器應用程序不可用?
- 2. 服務器應用程序不可用
- 3. 服務器應用程序不可用
- 4. Android應用程序許可服務
- 5. 從應用程序服務器根服務GWT應用程序
- 6. 谷歌應用程序腳本服務調用次數太多
- 7. Azure應用程序服務碼頭容器'服務不可用'
- 8. Android開發應用程序在應用程序中不可見
- 9. 見「在‘/’應用程序中的服務器錯誤」詳細的IIS服務器
- 10. 配置Microsoft應用程序見解以監視Windows服務
- 11. Worklight服務器URL設置在iPhone應用程序中不可見
- 12. 應用程序服務器
- 13. Android服務&&應用程序
- 14. Android服務應用程序
- 15. 服務XUL應用程序
- 16. Facebook應用程序可見性查詢
- 17. Django應用程序不可見
- 18. 應用程序在任務欄上可見嗎?
- 19. 無法在可可應用程序中使用ASP.Net Web服務
- 20. AppFog上的Node.JS應用程序響應503服務不可用
- 21. 可以從另一個應用程序服務中調用一個應用程序服務嗎?
- 22. 基於圖形的應用程序的域服務和應用程序服務
- 23. AngularAMD:應用程序取決於服務,但服務取決於應用程序
- 24. 可以通過兩個應用程序訪問後臺服務應用程序
- 25. 應用程序可以是WPF桌面應用程序還是WCF服務?
- 26. HID服務不可見
- 27. 作爲應用程序的一部分啓動的服務應該從UI中可見/可以驅動嗎?
- 28. 可可客戶機/服務器應用程序
- 29. 可可系統服務:通話應用程序名稱
- 30. 在可可應用程序中嵌入Web服務器
如果是服務,那麼它將無法在Windows Vista和Windows 7中顯示任何表單。但無論如何,服務方面與您的問題無關。你只是想顯示一個不顯示在任務欄上的表單。 – 2010-04-07 23:13:43