Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Outlook VBA-使用Outlook 2010 64位,每半小时运行一次代码_Vba_Timer_Outlook_Outlook 2010 - Fatal编程技术网

Outlook VBA-使用Outlook 2010 64位,每半小时运行一次代码

Outlook VBA-使用Outlook 2010 64位,每半小时运行一次代码,vba,timer,outlook,outlook-2010,Vba,Timer,Outlook,Outlook 2010,此问题以前已完成(并已解决),请参阅 几年前,我在运行Vista(32位)、Windows7和Windows8.1(全部64位)的几台计算机上使用了这段代码,没有遇到任何问题。安装了新office 2010的新计算机会出现一些问题 64位版本的outlook的反应似乎与32位版本不同。 这些行有错误 Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse A

此问题以前已完成(并已解决),请参阅 几年前,我在运行Vista(32位)、Windows7和Windows8.1(全部64位)的几台计算机上使用了这段代码,没有遇到任何问题。安装了新office 2010的新计算机会出现一些问题

64位版本的outlook的反应似乎与32位版本不同。 这些行有错误

Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerfunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
这可以通过PtrSafe进行纠正,如:

Declare Function PtrSafe SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerfunc As Long) As Long
Declare Function PtrSafe KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
另一个错误出现在行中:

TimerID = SetTimer(0, 0, nMinutes, AddressOf TriggerTimer)

类型似乎有所不同

PtrSafe
并没有更正代码,它只是声明可以从64位代码调用以下声明

AddressOf
返回的指针原型为
ByVal lpTimerfunc,长度为32位;i、 e.太小,无法容纳64位地址。这同样适用于
hwnd


使用类型来处理此问题。

hm<代码>地址
?如果您告诉我们错误消息和代码,这将有所帮助