windows 服務與系統托盤之間的互動

2021-06-17 15:09:14 字數 1189 閱讀 8294

有的時候我們需要自己寫服務,而且需要給繫結乙個 托盤!用來更加方便的 控制我們的程式!例如 qq 那種!

下面我來講一下他們之間是怎麼關聯的!

有怎麼幾步!

2,桌面互動的配置

在serviceinstaller1_committed事件中新增如下**:

connectionoptions cooptions = new connectionoptions();

cooptions.impersonation = impersonationlevel.impersonate;

managementscope mgmtscope = new system.management.managementscope(@"root\cimv2", cooptions);

mgmtscope.connect();

managementobject wmiservice;

wmiservice = new managementobject("win32_service.name='" + serviceinstaller1.servicename + "'");

managementbaseobject inparam = wmiservice.getmethodparameters("change");

inparam["desktopinteract"] = true;

managementbaseobject outparam = wmiservice.invokemethod("change", inparam, null);

此段**即是將此service設定為「允許與桌面互動」,有了此選項之後,服務啟動時gui程式的介面將會出現。

3,與托盤程式的關聯,這是乙個單獨的方法!因為托盤程式 一般都是乙個單獨的程式!所以哦我們在服務只能去呼叫托盤程式!在服務啟動的時候啟動托盤程式!

protected void formstart()

} if   (!ico)                               //如果沒有托盤程式的程序!我們就需要新建乙個程序,去啟動托盤程式! }

5,找到自己寫的服務,屬性,設定!如下圖!

這樣在啟動我們的服務的時候,我們寫好的托盤程式就會執行了!也就是說能夠看到我們的 托盤圖示了!

Qt之設定系統托盤

標頭檔案 ifndef systemtrayicon h define systemtrayicon h include include include include include class systemtrayicon public qwidget endif systemtrayicon ...

系統托盤程式設計

所謂的 托盤 在windows系統介面中,指的就是下面任務條右側,有繫 統時間等等的標誌的那一部分。二 托盤程式設計相關函式 winshellapi bool winapi shell notifyicon dword dwmessage,pnotifyicondata pnid 這個函式呢,負責向...

系統托盤程式

系統托盤程式 與系統托盤通訊的函式 shell notifyicon dword dwmessage,pnotifyicondata pnid 第乙個引數dwmessage可以取以下值 1 nim add 向托盤中加入乙個圖示 2 nim modify修改托盤中的圖示 3 nim delete 從托...