在 改造 Taglocity 3.0 Tag Bar (2) ---- 反映標籤狀態, 只能做到『一次性』的反映標籤狀態。接下來, 要加入『即時更新』的功能。
以下方法各有優缺點, 也不確定是否適合每個人的使用情境, 所以重點放在優缺點的討論 :
.
即時更新 Tag Bar 來 反映標籤狀態
『即時更新』可以用『定時重複執行』或是『觸發執行』來實現,
- Outlook VBA 並沒有原生的『定時重複執行』功能, 不過 rockman 在 outlookcode.com (2004-12-07) 提出用 user32 函式庫的 SetTimer 和 KillTimer 的方法, 也提到『必須注意有可能當機』
2) If you don't deactivate the timer when the application closes it will likely crash
- 實作上, 將 Timer 設定成 1~2 秒就夠用了
.
- 另一種, 在 Catch all events on a folder (outlookcode.com) 可以找到 Outlook 事件觸發的參考資料, 但我沒有實作
方法 | 優缺點 |
定時執行 SetTimer (User32) @ 前提 : 對 VB 有相當的把握 | O 優點 :
|
事件觸發方式, 例如 : Catch all events on a folder (outlookcode.com) (尚未實作) | O 優點 :
|
以 AutoHotKey 觸發 @ 前提 : 需要有 AutoHotKey 經驗 | O 優點 :
|
.
AutoHotKey 串連 Outlook 實現自動化
最後, 目前完成度最高的, 是『AutoHotKey 串連 Outlook』
- 使用 AutoHotKey 的 SetTimer 來定時觸發
- 檢查 Outlook 是否為作用中的視窗, 而且螢幕上有 TagBar
- 使用 AutoHotKey COM Standard Library 來呼叫 反映標籤狀態 的 Outlook 函數, 也就是 COM_Invoke(poul, "updateTagBar")
COM_Init()
poul := COM_CreateObject("Outlook.Application")
' ... (此處最好有容錯處理)
ol_func := COM_Invoke(poul, "updateTagBar")
' ... (此處最好有容錯處理)
COM_Release(ol_func)
COM_Release(poul)
COM_Term()
.
0 意見:
發表您的回應張貼留言