如何取消(禁止)Autoexec宏的自动运行?
2024-06-22 11:43:50阅读量:44 字体:大 中 小
使用Autoexec宏来自动操作一个或多个ACCESS数据库,特别是如果开发者试图获Access对象模型(Access Object Model),胜过使用Jet引擎(能通过DAO和ADO来获取的)。不管怎样,Access不提供任何内置的方法来有条件避开这个Autoexec宏。如果数据库包括了这个宏,一打开就会运行。当未设置数据库的AllowBypassKey属性时,可以在启动数据库时按住Shift键来避开运行这个宏。
如果没有设置AllowBypassKey属性,那么可以通过编程方式模拟启动数据库时按住Shift键,这样可以自动避开数据库启动的自动代码。通过引用隐藏的ACCESS数据库实例来避开数据库的自动宏,你可以使用下面的函数fGetRefNoAutoexec。
’********* Code Start ***********
’ This code was originally written by Dev Ashish.
’ It is not to be altered or distributed,
’ except as part of an application.
’ You are free to use it in any application,
’ provided the copyright notice is left unchanged.
’
’ Code Courtesy of
’ Dev Ashish
Private Declare Function SetKeyboardState _
Lib "user32" _
(lppbKeyState As Any) _
As Long
Private Declare Function GetKeyboardState _
Lib "user32" (pbKeyState As Any) _
As Long
Private Declare Function GetWindowThreadProcessId _
Lib "user32" _
(ByVal hWnd As Long, _
lpdwProcessId As Long) _
As Long
Private Declare Function AttachThreadInput _
Lib "user32" _
(ByVal idAttach As Long, _
ByVal idAttachTo As Long, _
ByVal fAttach As Long) _
As Long
Private Declare Function SetForegroundWindow _
Lib "user32" _
(ByVal hWnd As Long) _
As Long
Private Declare Function SetFocusAPI _
Lib "user32" Alias "SetFocus" _
(ByVal hWnd As Long) _
As Long
Private Const VK_SHIFT = &H10
Private Const VK_LSHIFT = &HA0
Private Const VK_RSHIFT = &HA1
Function fGetRefNoAutoexec( _
ByVal strMDBPath As String) _
As Access.Application
On Error GoTo ErrHandler
Dim objAcc As Access.Application
Dim TIdSrc As Long, TIdDest As Long
Dim abytCodesSrc(0 To 255) As Byte
Dim abytCodesDest(0 To 255) As Byte
If (Len(Dir$(strMDBPath, vbNormal)) = 0) Then
Err.Raise 53
End If
Set objAcc = New Access.Application
With objAcc
.Visible = True
’ attach to process
TIdSrc = GetWindowThreadProcessId( _
Application.hWndAccessApp, ByVal 0)
TIdDest = GetWindowThreadProcessId( _
.hWndAccessApp, ByVal 0)
If CBool(AttachThreadInput(TIdSrc, TIdDest, True)) Then
Call SetForegroundWindow(.hWndAccessApp)
Call SetFocusAPI(.hWndAccessApp)
’ 设置Shift状态
Call GetKeyboardState(abytCodesSrc(0))
Call GetKeyboardState(abytCodesDest(0))
abytCodesDest(VK_SHIFT) = 128
Call SetKeyboardState(abytCodesDest(0))
’ 打开一个带有Autoexec宏的mdb
Call .OpenCurrentDatabase(strMDBPath, False)
’ 恢复键盘状态
Call SetKeyboardState(abytCodesSrc(0))
End If
’ release
Call AttachThreadInput(TIdSrc, TIdDest, False)
Call SetForegroundWindow(Application.hWndAccessApp)
Call SetFocusAPI(Application.hWndAccessApp)
End With
Set fGetRefNoAutoexec = objAcc
Set objAcc = Nothing
Exit Function
ErrHandler:
If (TIdDest) Then Call AttachThreadInput(TIdSrc, TIdDest, False)
Call SetForegroundWindow(Application.hWndAccessApp)
With Err
.Raise .Number, .Source, .Description, .HelpFile, .HelpContext
End With
End Function
’********* Code End ***********
以上就是如何取消(禁止)Autoexec宏的自动运行?的全部内容,望能这篇如何取消(禁止)Autoexec宏的自动运行?可以帮助您解决问题,能够解决大家的实际问题是谜爱阁生活网一直努力的方向和目标。
免责声明:
本文《如何取消(禁止)Autoexec宏的自动运行?》版权归原作者所有,内容不代表本站立场!
如本文内容影响到您的合法权益(含文章中内容、图片等),请及时联系本站,我们会及时删除处理。
推荐阅读

支付宝悄悄话怎么知道对方看没看
支付宝的悄悄话是阅后即焚的消息,如果发送悄悄话过去,悄悄话消失了就证明对方已看。具体操作方法如下: 支付宝悄悄话怎么知道对方看没看 1、打开手机支付宝app,点击消息”,再点击右上角人像。...
阅读: 1655

健康码代领怎么弄
在家里的老人孩子都不会操作手机的时候,可以代领健康码,在微信的防疫健康码中即可进行代领。具体操作方法如下: 健康码代领怎么弄 1、打开手机微信app,点击我”。 2、点击服务&rdquo...
阅读: 863

倒数日怎么删除不用的事件
倒数日是一款倒计时软件,添加的事件可以进行删除,进入事件编辑即可删除。具体操作方法如下: 倒数日怎么删除不用的事件 1、打开手机倒数日app,点击需要删除的事件,进入事件页面。 2、点击右上角笔的标...
阅读: 819

怎么关闭零钱通
零钱通是微信中的一个理财产品,如果需要关闭,在零钱通的设置中直接关闭即可。具体操作方法如下: 怎么关闭零钱通 1、打开手机微信app,点击我”。 2、点击服务”。 3、点击...
阅读: 850

qq听歌状态怎么显示听的歌
qq听歌状态可以显示正在QQ音乐听的歌,设置听歌状态后进入QQ音乐听歌即可。具体操作方法如下: qq听歌状态怎么显示听的歌 1、打开手机QQ软件,点击头像上的状态,进入状态设置。 2、找到并点击听歌...
阅读: 925

qq相册怎么转移到另一个qq
qq相册要转移到另一个qq,可以借助转载功能进行转移,使用QQ进入另一个QQ的相册即可进行转载。具体操作方法如下: qq相册怎么转移到另一个qq 1、打开手机QQ软件,点击联系人”,再点击...
阅读: 864
热门文章
1.可话怎么看别人动态
- 1

- 可话怎么看别人动态
- 2022-12-28
- 1
2.快手上的流动文字怎么弄
- 2

- 快手上的流动文字怎么弄
- 2022-12-28
- 2
3.英语趣配音怎么导出视频
- 3

- 英语趣配音怎么导出视频
- 2022-12-28
- 3
4.上传群相册怎么不在群里显示
- 4

- 上传群相册怎么不在群里显示
- 2022-12-28
- 4
5.电子稿怎么弄
- 5

- 电子稿怎么弄
- 2022-12-28
- 5
6.在喜马拉雅上怎么接配音任务
- 6

- 在喜马拉雅上怎么接配音任务
- 2022-12-28
- 6
7.微信删除好友频繁了怎么继续删除
- 7

- 微信删除好友频繁了怎么继续删除
- 2022-12-28
- 7
8.朋友圈动图怎么不动
- 8

- 朋友圈动图怎么不动
- 2022-12-28
- 8
9.拉黑了怎么加回来
- 9

- 拉黑了怎么加回来
- 2022-12-28
- 9
10.超话等级怎么快速升
- 10

- 超话等级怎么快速升
- 2022-12-28
- 10
最近更新

酷狗音乐中使用蝰蛇音效制作工具的具体操作方法
2024-11-11

win7电脑中出现声音图标不见了的具体解决方法
2024-11-11

车到哪app的详细软件介绍
2024-11-11

小米9se中查看序列号的具体操作方法
2024-11-11

迅雷中使用FTP探测器的详细操作方法
2024-11-11

ppt制作出小荷才露尖尖角动画场景的具体操作步骤
2024-11-11
