国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Word > 正文

怎么樣檢查Word或WPS文件是否已經(jīng)關(guān)閉

2020-08-03 20:21:00
字體:
供稿:網(wǎng)友

在大多數(shù)應(yīng)用中都要知道從頁面打開的Word或WPS文件是否已經(jīng)關(guān)閉,通常的方法有以下幾種:

方法一:
  由于當(dāng)前打開的文件是獨占模式打開的,所以可以使用移動文件的方法進(jìn)行判斷,如:
  將文件從當(dāng)前文件夾移動到當(dāng)前文件夾如果出錯則改文件在使用,判斷結(jié)果為當(dāng)前文件沒有關(guān)閉,但是這種方法的判斷不一定正確,如果有一個WORD或WPS進(jìn)行在后臺運行,而且它也在用這個文件那么這種方法無疑是會有問題的。
方法二:
  使用系統(tǒng)函數(shù)進(jìn)行判斷用windowsAPI進(jìn)行判斷,具體思路可以獲取當(dāng)前打開窗口的句柄,判斷這個句柄是否存在來進(jìn)行判斷,但是這種方法也會有一定的缺陷。
方法三:
  使用這種方式的思路是不直接對文件進(jìn)行判斷而是采用間接的方式進(jìn)行判斷,使用WORD或WPS插件開發(fā)方式,開發(fā)一個關(guān)閉狀態(tài)寫入插件。該插件的功能是如果當(dāng)前關(guān)閉的文件是要進(jìn)行判斷的文件則在關(guān)閉文件的時候?qū)⒃摖顟B(tài)寫入到一個XML狀態(tài)文件中如:
改文件的信息可以如下:

<?xml version="1.0" encoding="UTF-8"?>
<FileInfo>
    <File>
         <FileName>C:/Documents and Settings/Administrator/桌面test1.doc</FileName>
         <IsClose>false</IsClose>
         <IsSaveAs>false</IsSaveAs>
    </File>
    <File>
        <FileName>C:/Documents and Settings/Administrator/桌面/test2.wps</FileName>
        <IsClose>True</IsClose>
        <IsSaveAs>false</IsSaveAs>
    </File>
</FileInfo>

其中紅色部分為當(dāng)前文件是否關(guān)閉的狀態(tài)值,在控件調(diào)用部分可以使用一個計時器進(jìn)行讀取這個狀態(tài),直到關(guān)閉。
   其中WPS或WORD插件的主要功能就是在關(guān)閉的時候通過Application.FullName和當(dāng)前XML狀態(tài)文件中的FileName進(jìn)行對比如果文件名和路徑相同則將改對應(yīng)的IsClose屬性設(shè)置為True.這時候控件部分在讀取這個值的時候就會判斷到這個文件已經(jīng)關(guān)閉了從而進(jìn)行下一步的處理。
   在這個狀態(tài)文件中大家可能看到文件名FileName的寫入使用的是絕對路徑,因為如果只是寫入文件名判斷會出錯:如,我們要判斷的是C:/1.wps文件是否已經(jīng)關(guān)閉而現(xiàn)在又打開D:/1.wps
,很明顯在只有文件名記錄的情況下,這種上述這種情況會出錯,所以采用了絕對路徑和文件名的判斷這樣判斷會更準(zhǔn)確一些。

   我個人還是比較看好第三種方法,原因是這種方式將需要判斷的文件和判斷方法進(jìn)行分離,使用插件效果會較好。
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 潢川县| 阿巴嘎旗| 城口县| 兴城市| 民勤县| 东乡| 乡宁县| 武功县| 赤峰市| 武义县| 洪洞县| 湟源县| 乐都县| 如东县| 林周县| 武邑县| 德江县| 新晃| 赤壁市| 大名县| 富顺县| 罗定市| 鄯善县| 秭归县| 蒙山县| 弥渡县| 乐昌市| 湘潭市| 定结县| 黄梅县| 保德县| 马龙县| 石首市| 抚顺县| 林周县| 洮南市| 临安市| 赣榆县| 大石桥市| 莒南县| 永修县|