返回列表 上一主題 發帖

64位元系統使用Application物件的SetTimer API函數出現問題解決辦法

64位元系統使用Application物件的SetTimer API函數出現問題解決辦法

Application物件的SetTimer API函數在32位元系統使用時正常,但在64位元系統下使用會出現錯誤,
解決方式如下:
將原始碼:
Option Explicit
Public Declare PtrSafe Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, _
                ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare PtrSafe Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
.......
改成如下即可
Option Explicit
Public Declare PtrSafe Function SetTimer Lib "user32" (ByVal hWnd As LongPtr, ByVal nIDEvent As LongPtr, _
                ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
Public Declare PtrSafe Function KillTimer Lib "user32" (ByVal hWnd As LongPtr, ByVal nIDEvent As LongPtr) As LongPtr
.......
各位先進可以試試看。

回復 1# jpuv

學了一招,謝謝
在其他的 x64 application 是否都可行?
x86 2010 Excel 可以用的 .dll 到 x64 2010 就被打敗了  :'(

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題