使用VBA中的放大API获取屏幕放大率



我写了一个小模块,试图获得屏幕放大率值。它调用了amplification.dll中的一些过程。我认为我对它的编码是正确的,但我得到了一个可怕的453错误(找不到入口点)。

这是代码:

Public Declare Function MagInitialize Lib "magnification.dll" () As Boolean
Public Declare Function MagUninitialize Lib "magnification.dll" () As Boolean
Public Declare Function MagGetFullscreenTransform Lib "magnification.dll" _
(ByVal pMagLevel As Single, ByVal pxOffset As Integer, ByVal pyOffset As Integer) As Boolean '
Sub test123()
 Dim sngValue As Single, intX As Integer, intY As Integer
 If (MagInitialize) Then
    If MagGetFullscreenTransform(sngValue, intX, intY) Then    '
        Debug.Print sngValue & " was returned from MagGetFullscreenTransform. "
    Else
        Debug.Print "MagGetFullscreenTransform was false."
    End If
 Else
    Debug.Print "Can't initialize"
 End If
 If Not (MagUninitialize) Then
    Debug.Print "Can't uninitialize"
 End If
 End Sub

我不知道过程别名(并不是说它需要一个别名,据我所知,别名是可选的)。我曾尝试在Excel项目中"检查"Magnification.dll作为引用,但它不允许。(无法添加对指定文件的引用)。

建议?我只需要提取放大值。

谢谢!

My windows 7 amplification.dll导出Mag/UnInitialize,但不导出MagGetFullscreenTransform,文档说最低客户端版本是"windows Developer Preview",所以它看起来像是win 8功能,我认为您没有使用它。

最新更新