Jacob 使用細節優化

Jacob 可以用來做很多事,我這裏主要用到了通過 office 轉 pdf 的功能。

在使用過程中,偶爾會出現(1%的概率)進程異常,出現彈框等問題導致程序假死。

爲了解決類似問題,在使用過程中,可以從以下細節進行優化。

1. 只讀模式

使用 office 時,如果文件被佔用,在打開始會彈框進行提示:
在這裏插入圖片描述
出現該彈窗後會導致程序卡住不動。
如果改爲只讀模式,就不存在這個問題,代碼如下:
在這裏插入圖片描述
注意上面第二行第一個參數,設置爲 true 就能解決。

2. 超時重試

如果在轉 PDF 過程中,出現下面的錯誤:
在這裏插入圖片描述
就會導致轉換失敗,而且不點擊【關閉程序】的情況下該進程會卡住。
增加超時重試機制後,雖然該錯誤窗口還在,但是轉PDF可以成功繼續。

3. 定時清理錯誤進程

上面錯誤中,對應的錯誤進程爲 WerFault.exe,可以通過在定時任務中執行下面代碼關閉該窗口:

Runtime.getRuntime().exec("taskkill /F /IM WerFault.exe");

在出錯的的情況,假設是 word 轉 pdf,此時在進程列表中,還會一直有對應的 WINWORD.EXE 一直在運行,通過監控進程 PID 存在時長來判斷是否因爲異常已經很久沒有關閉,通過代碼來關閉相應的進程。

通過下面代碼獲取進程列表:

taskkill /nh /FI "IMAGENAME eq XX.EXE"

代碼如下:
在這裏插入圖片描述
獲取 ID 後,記錄進程 ID 被搜索到幾次:
在這裏插入圖片描述
當超過一定次數的時候關閉進程:
在這裏插入圖片描述
批量關閉進程:
在這裏插入圖片描述
通過以上細節的處理,基本上可以讓 Jacob 的操作不出問題,後臺可以長期平穩運行下去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章