如何避免程序重複執行
出自VFP Wiki
如何避免程序重複執行
的原始碼
跳轉到:
導航
,
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
你所請求執行的操作被禁止。
你可以檢視並複製本頁面的原始碼。
[[category:VFPFAQ]] ====利用FindWindows==== 提供者: violetlkk 檢查視窗標題 <code> ***************************** * 防止重複運行 ***************************** PROCEDURE ReEntry PARAMETERS lcTitle DECLARE integer FindWindow IN win32api string,string IF FindWindow(0,lcTitle)<>0 CLEAR DLLS RETURN .t. ELSE CLEAR dlls RETURN .f. ENDIF ENDPROC if ReEntry('your_windows_caption') =messagebox("不可重複執行") quit endif </code> ====產生檔案之一==== 提供者: erwin_ho 一啟動就產生一個固定的檔案名稱(程式結束時把它刪除) 若執行時檢查有這檔案存在表示已執行過 ====產生檔案之二==== 提供者: summer 若不會用API的話,有一個最笨及最原始的方法,而且不會因執行程式因不正常關閉而造成一起問題... 方法如下: 當程式開啟時,至 GETEVN("WinDir") 下開啟一個 .DBF 檔,並且直接用 Use 的專用模式開啟.....如 Use (GETEVN("WinDir") + "\Start") in 0 Alias startup 原理: 因為開啟專用模式,所以,當您的程式不管在什麼地方啟用,只要是在同一部電腦,它即無法重覆開啟 Start.DBF 這個檔案,如此即代表程式正在運作中,但是,如果是當機或是程式不幸不正常結束,Start.DBF 也會被系統自動的解開使用狀態,您再一次的開啟程式,也不會有樓上朋友所說的問題.... 現在唯一要注意的是,這個檔案(Start.DBF)的創建過程及在Win9x下的運作,因為我很久沒有用 Win9x 了,所以我不太確定 GetEnv("WinDir")是否能正確取得系統變數... ====利用WMI==== 提供者: Chris Lee 限制: Windows 2000 或以上的版本 用 Win2K Management Object 了嗎?這可以結束正在執行中的 process,當然也就可以偵測正在執行中的 process 囉!
返回到
如何避免程序重複執行
。
檢視
頁面
討論
原始碼
歷史
個人工具
登入/建立新帳號 選單
導航
首頁
社群入口
現時事件
近期變動
隨機頁面
使用說明
搜尋
工具箱
鏈入頁面
相關頁面修訂記錄
所有特殊頁面