首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用任务计划程序运行Access宏,但希望在运行时隐藏Access。看不到Access打开和关闭

要在任务计划程序中运行Access宏而不显示Access窗口,可以通过创建一个VBA脚本并使用Windows API函数来实现。以下是详细步骤和示例代码:

基础概念

任务计划程序是Windows操作系统中的一个组件,允许用户安排任务在特定时间或事件触发时自动执行。Access宏是一种自动化工具,用于执行一系列预定义的操作。通过结合这两者,可以实现自动化任务处理。

相关优势

  1. 自动化操作:无需人工干预即可执行重复性任务。
  2. 提高效率:节省时间,减少人为错误。
  3. 定时执行:可以根据需要设置任务的执行时间。

类型

  • 简单任务:一次性执行的操作。
  • 复杂任务:包含多个步骤和条件判断的任务。

应用场景

  • 数据处理:定期导入、导出和分析数据。
  • 报告生成:定时生成和发送报告。
  • 系统维护:执行数据库备份和清理操作。

示例代码

以下是一个VBA脚本示例,用于在后台运行Access宏而不显示Access窗口:

代码语言:txt
复制
Private Declare PtrSafe Function CreateProcess Lib "kernel32" Alias "CreateProcessA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpCommandLine As String, _
    ByVal lpProcessAttributes As LongPtr, _
    ByVal lpThreadAttributes As LongPtr, _
    ByVal bInheritHandles As Long, _
    ByVal dwCreationFlags As Long, _
    ByVal lpEnvironment As LongPtr, _
    ByVal lpCurrentDirectory As String, _
    ByRef lpStartupInfo As STARTUPINFO, _
    ByRef lpProcessInformation As PROCESS_INFORMATION) As Long

Private Declare PtrSafe Function CloseHandle Lib "kernel32" ( _
    ByVal hObject As LongPtr) As Long

Private Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As LongPtr
End Type

Private Type PROCESS_INFORMATION
    hProcess As LongPtr
    hThread As LongPtr
    dwProcessId As Long
    dwThreadId As Long
End Type

Const SW_HIDE = 0
Const CREATE_NO_WINDOW = &H8000000

Sub RunAccessMacroHidden()
    Dim strPathToAccess As String
    Dim strPathToDatabase As String
    Dim strMacroName As String
    Dim strCommandLine As String
    Dim si As STARTUPINFO
    Dim pi As PROCESS_INFORMATION
    Dim lngResult As Long

    ' 设置Access可执行文件路径、数据库路径和宏名称
    strPathToAccess = "C:\Path\To\MSACCESS.EXE"
    strPathToDatabase = "C:\Path\To\YourDatabase.accdb"
    strMacroName = "YourMacroName"

    ' 构建命令行字符串
    strCommandLine = strPathToAccess & " " & strPathToDatabase & " /x " & strMacroName

    ' 初始化STARTUPINFO结构
    With si
        .cb = Len(si)
        .wShowWindow = SW_HIDE
    End With

    ' 创建进程
    lngResult = CreateProcess( _
        ByVal 0&, _
        ByVal strCommandLine, _
        ByVal 0&, _
        ByVal 0&, _
        False, _
        CREATE_NO_WINDOW, _
        ByVal 0&, _
        ByVal 0&, _
        si, _
        pi)

    ' 关闭句柄
    If lngResult <> 0 Then
        CloseHandle pi.hThread
        CloseHandle pi.hProcess
    End If
End Sub

解决问题的原因和方法

原因:默认情况下,Access在运行宏时会显示窗口。通过使用Windows API函数CreateProcess并设置CREATE_NO_WINDOW标志,可以创建一个没有窗口的进程。

解决方法

  1. 编写VBA脚本:如上所示,编写一个VBA脚本来调用Access并运行宏。
  2. 设置任务计划程序:在任务计划程序中创建一个任务,指定运行上述VBA脚本。

应用场景

  • 后台数据处理:适用于需要定期执行且不需要用户干预的数据处理任务。
  • 自动化报告生成:定时生成报告并通过电子邮件发送,无需人工干预。

通过这种方式,可以实现Access宏的无界面运行,提高自动化任务的效率和可靠性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

windows应急响应

,输入msinfo32,在【软件环境】-> 【正在运行的任务】通过PID和进程名定位,就可以看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。...Win+R打开运行窗口,输入serivces.msc,关闭对应服务,然后在杀死进程。...1.3 检查启动项、计划任务、服务 1、检查服务器是否有异常的启动项 登录服务器,单机【开始】-> 【所有程序】->【启动】,默认情况下此目录是一个空目录,确认是否有非业务程序在该目录下...2、检查计划任务 3、服务自启动 1.4 检查系统相关信息 1、查看系统版本以及补丁信息 检查方法:Win+R打开运行窗口,输入systeminfo,查看系统信息 2、查找可疑目录及文件...Win+R打开运行窗口,输入eventvwr.msc,打开事件查看器 导出应用程序日志、安全日志、系统日志,利用Log Parser进行分析 2、web访问日志 找到中间件的web日志,打包到本地方便进行分析

1.1K30

Microsoft Access Macro (.MAM) 快捷方式钓鱼测试

使用下拉框选择“Run Code”并指向你的宏函数。 ? 接下来,我们点击“Run”菜单选项来测试宏,Access将提示你保存宏。如果你希望在打开文档时自动运行宏,请务必将宏保存为Autoexec。...我们可以创建MAM快捷方式,它将远程链接到我们的ACCDE文件并通过网络运行其中的内容。 确保ACCDE文件已打开,单击鼠标左键并将宏拖到桌面上。这将为我们创建一个可以修改的初始.MAM文件。...钓鱼 在远程主机上,使用首选的Web托管方法提供ACCDE文件。 ? 编辑.MAM文件以指向Web服务器上托管的ACCDE文件。 ? 现在我们的任务是将MAM payload传送给我们的目标。...如果用户进行了此项设置后,钓鱼程序将会被拒绝执行。需要注意的是,即使宏被阻止了,MAM文件仍会向外pull down Access文件。所以,目标用户仍将会知道你是通过smb接收执行或窃取凭据的。...总结 本文我向大家展示了,如何使用Microsoft Access Macro快捷方式进行钓鱼的方法和步骤,以及后续痕迹的查找和清除还有缓解措施。

81630
  • HW防守 | Windows应急响应基础

    3、查看服务器是否存在隐藏账号、克隆账号。 检查方法: a、打开注册表 ,查看管理员对应键值。...b、使用D盾_web查杀工具,集成了对克隆账号检测的功能 c.windows账号信息,隐藏账号 【开始】➜【运行】➜【compmgmt.msc】➜【本地用户和组】➜【用户】 (用户名以$结尾的为隐藏用户...--输入msinfo32,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。...可以通过观察以下内容: 没有签名验证信息的进程 没有描述信息的进程 进程的属主 进程的路径是否合法 CPU或内存资源占用长时间过高的进程 7、计划任务 控制面板 — 管理工具 — 任务计划程序 或运行...— taskschd.msc 通过命令查看计划任务schtasks 存放计划任务的文件 C:\Windows\System32\Tasks\ C:\Windows\SysWOW64\Tasks\ C:\

    1.3K40

    阿里前端二面常见面试题汇总_2023-03-01

    JS引擎线程在运行JS程序; 注意:GUI渲染线程与JS引擎线程的互斥关系,所以如果JS执行的时间过长,会造成页面的渲染不连贯,导致页面渲染加载阻塞。...CPU 工作时间片的一个描述: 进程描述了 CPU 在运行指令及加载和保存上下文所需的时间,放在应用上来说就代表了一个程序。...一个进程就是一个程序的运行实例。详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。...,加入微任务队列 执行timer1,它是一个宏任务,加入宏任务队列 继续执行下面的同步代码,打印出start 这样第一轮宏任务就执行完了,开始执行微任务Promise.resolve().then,打印出...promise1 遇到timer2,它是一个宏任务,将其加入宏任务队列,此时宏任务队列有两个任务,分别是timer1、timer2; 这样第一轮微任务就执行完了,开始执行第二轮宏任务,首先执行定时器timer1

    1.6K00

    基础渲染系列(十九)——GPU实例(Instancing)

    但只有使用相同材质的对象才能以这种方式组合,它是以存储更多网格数据为代价的。启用动态批处理后,Unity在运行时会对视图中的动态对象执行相同的操作。...与动态批处理一样,此操作在运行时针对可见对象完成。这个想法是让GPU一次性渲染同一网格多次。因此,它不能组合不同的网格或材质,但不局限于小网格。这里我们将试试这个方法。...(支持和开启 实例化) 我们的材质现在具有“Enable Instancing”开关。打开将改变球体的渲染方式。 ?...我们通过UNITY_SETUP_INSTANCE_ID宏进行手动设置,该宏必须在顶点程序中完成,然后再执行任何可能需要它的代码。 ? ?...我们可以为此使用UNITY_ACCESS_INSTANCED_PROP宏。 ? 它为什么不编译,或者为什么Unity更改我的代码?

    11.3K30

    如何在Ubuntu 16.04上使用Logrotate管理日志文件

    创建独立的Logrotate配置 在这个例子中,我们有一个应用程序作为我们的用户sammy在运行,生成存储在其中的日志/home/sammy/logs/中。...您需要自定义配置以适合您的应用程序,但这是一个良好的开端。...因为日志是由sammy拥有的,所以我们不需要使用sudo命令。我们确实需要指定一个状态文件。此文件记录logrotate上次运行时所看到和执行的操作,以便它知道下次运行时要执行的操作。...这将安装crontab,我们的任务将按指定的时间表运行。...如果我们在大约一小时内重新访问我们的日志目录,我们应该找到轮换和压缩的日志文件access.log.1.gz(或者.2.gz,如果您使用的是--force标志运行Logrotate )。

    2.1K50

    更多关于任务计划程序的服务帐户使用情况

    如何通过使用服务 SID 运行计划任务来获取 TrustedInstaller 组。...让我们看看任务调度程序使用的函数来确定调用者是否允许将任务作为指定的主体运行。...如果服务当前正在运行,您需要停止服务,然后重新启动修改后的服务以执行代码。...但是,只要您的帐户被授予对服务的完全访问权限,即使不是管理员,您也可以使用任务计划程序来让代码以服务的用户帐户(例如 SYSTEM)的身份运行,而无需直接修改服务的配置或停止/启动服务。...当然,这确实意味着运行任务的令牌可能会被剥夺特权等,但这很容易处理(只要它不受写限制)。 这是一个很好的教训,告诉我们如何永远不要只看表面上的东西。

    94700

    文件操作——写入

    1、文件的写入: 在VBA里,我们要对文件进行二进制的写操作,使用的是: Open pathname For mode [ Access access ] [ lock ] As [ # ] filenumber...,在程序文件的目录下,会生成1个put.txt文件,我们双击打开的话,你应该会发现乱码了: ?...Write As #num_file '写入数据 Put #num_file, , b '关闭文件 Close #num_file End Sub 这时候打开就正常了。...这也是前面在数组Array提到过的:过度的封装(而且我们看不到源码),让我们这些使用者对底层的一些知识一无所知。...虽然这个很好用,但希望使用者一定要先去理解如何按照mode为Binary的方法去读取、写入文件,在要处理的地方都自己手动去处理好,真正能够理解了原理后,图方便再去使用mode为Input、Output等

    2.9K20

    小程序如何使用订阅消息(PHP代码+小程序js代码)

    、[如何使用订阅消息]、[开发订阅消息],还在等什么?小程序学习订阅本专栏不香嘛?!,顺便关注走一走[滑稽] 什么是小程序订阅消息?...长期订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。...> 下载redis服务,记得开放6379端口 ---- 新建access_token.php文件 通过定时任务对access_token的存储,在快过期时调用更新,这里说一次为啥不调用一次刷新一次...的存储至少要保留 512 个字符空间; access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效; 建议开发者使用中控服务器统一获取和刷新...> 我们访问测试下: 设计定时器触发更新access_token 修改notify.php文件 打开小程序模板的详情我们进行替换,例如我的: 那就需要把内容的数据替换 替换后notify.php

    76031

    Microsoft Office Access

    ACCESS的用途更多,体现在很多方面: 表格模板。 只需键入需要跟踪的内容,Access 便会使用表格模板提供能够完成相关任务的应用程序。...Access 可处理字段、关系和规则的复杂计算,以便您能够集中精力处理项目。 您将拥有一个全新的应用程序,其中包含能够立即启动并运行的自然 UI。 创建和运行旧数据库。...数据库工具 “数据库工具”功能区包括宏、显示/隐藏、分析、移动数据、数据库工具5个分组,主要针对Access2007数据库进行比较高级的操作。...除了上述4种功能区之外,还有一些隐藏的功能区默认没有显示。只有在进行特定操作时,相关的功能区才会显示出来。例如在执行创建表操作时,会自动打开“数据表”功能区。...一般症状是所有涉及数据库的页面,突然运行都慢的出奇(执行时间达到5秒以上甚至几十秒),涉及HTML和纯ASP运算的页面都正常,等过一段时间(约10分钟或更长)以后又突然恢复(我的论坛有时候就会出现这样的问题

    4.3K130

    【Android从零单排系列四十四】《聊一下Android数据权限permission》

    权限申请:对于危险权限,应用需要在清单文件(AndroidManifest.xml)中声明,并且在运行时向用户请求授权。...运行时权限:自Android 6.0(API级别23)起,引入了运行时权限机制。对于危险权限,即使在清单文件中声明了,应用程序依然需要在运行时动态请求权限。...这些权限通常对用户的设备和数据具有更高级别的控制,因此用户必须明确授权才能使用它们。 应用程序开发者在使用危险权限时,需要通过运行时权限机制来请求和管理这些权限,以确保用户的隐私和安全。...to request that a signal be sent to all persistent processes) android.permission.STATUS_BAR允许程序打开、关闭或禁用状态栏及图标...android.permission.SYSTEM_ALERT_WINDOW允许一个程序打开窗口使用TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层(Allows an application

    98210

    Memory barrier 简介

    Memory barrier Memory barrier 简介 程序在运行时内存实际的访问顺序和程序代码编写的访问顺序不一定一致,这就是内存乱序访问。...内存乱序访问行为出现的理由是为了提升程序运行时的性能。...Memory barrier 包括两类: 编译器 barrier CPU Memory barrier 很多时候,编译器和 CPU 引起内存乱序访问不会带来什么问题,但一些特殊情况下,程序逻辑的正确性依赖于内存访问顺序...在 Linux 内核中,提供了一个宏 ACCESS_ONCE 来避免编译器对于连续的 ACCESS_ONCE 实例进行指令重排。...运行时内存乱序访问 在运行时,CPU 虽然会乱序执行指令,但是在单个 CPU 的上,硬件能够保证程序执行时所有的内存访问操作看起来像是按程序代码编写的顺序执行的,这时候 Memory barrier 没有必要使用

    1.1K30

    移动全平台性能测试工具PerfDog常见问题与解决方案

    3) 请预先下载使用最新itunes(若有安装iTools软件,请关闭iToos软件) 2、 Windows & Mac OS X平台PerfDog客户端版本都支持用户对iOS和Android设备进行测试...注:应用、游戏中关闭小白条/引导式访问(Guided Access)方法: 1、点击【设置】-【通用】-【辅助功能】-【引导式访问】 2、开启【引导式访问】,进入游戏后,连按三下电源键,可彻底隐藏home...只在USB模式可使用。 14、 为什么手机上看不到性能信息? 请打开手机悬浮窗口显示权限。 15、 为什么WIFI测试模式,提示连接失败。...19、 无法删除PerfDog文件夹,请任务管理器关闭Adb.exe进程。 20、 各种提示,反正无法使用 请重启手机或换USB线,重启是万能的。...可开多个PerfDog Mac机:和其他程序常规多开一样,复制多一个PerfDog 或者使用命令行:open -n /Applications/PerfDog.app。

    3.1K31

    应急响应--windows入侵检查思路及流程

    -输入msinfo32,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。...1、单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下 打开cmd输入gpedit.msc 2、单击开始菜单 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目...4、查看组策略,运行gpedit.msc 检查计划任务 1、单击【开始】>【设置】>【控制面板】>【任务计划程序】,查看计划任务属性,便可以发现木马文件的路径。...(或者在桌面打开运行(可使用快捷键 win+R),输入 control 打开控制面板) 打开cmd,然后输入 schtasks.exe,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接...应用程序日志 应用程序日志是由应用程序自动生成的记录文件,用于记录应用程序运行时的各种信息,包括用户操作、系统状态、错误信息 常见记录方式 1、文件记录 2、数据库记录 3、远程日志记录 日志默认位置

    25011

    Android 13 适配指南

    是使用了 "Tiramisu" 下,「通过官方提供的Intent(MediaStore.ACTION_PICK_IMAGES);打开的系统相册选择组件」,也没问题 图 3 和 图 4 是使用了 "Tiramisu...」,其中 Android 13 (33) 的通知会根据正在运行的应用程序的目标 API 级别进行不同的处理,「不过不管应用程序的目标API级别如何,Android 13 都会提示用户授予应用程序发送通知的权限...除特例API需要申请ACCESS_FINE_LOCATION外,其他需要申请android.permission.NEARBY_WIFI_DEVICES 运行时权限」; 在后台使用身体传感器需要新的权限...应用程序可以触发撤销授予调用 API 的包的一个或多个运行时权限,不需要访问特定运行时权限控制 API 的应用程序可以自行撤销这些权限,这样用户就可以确保这些应用程序不会在不知情的情况下使用这些API。...前台服务 (FGS) 任务管理器 Android 13 的新前台服务( Foreground Services:FGS)任务管理器显示当前运行前台服务的应用程序列表,此列表称为活动应用程序,可以通过下拉通知抽屉并点击启示来访问

    5.2K31

    如何在Ubuntu 16.04上使用Apache设置密码身份验证

    介绍 在运行网站时,网站的某些部分通常会限制访问者。Web应用程序可以提供自己的身份验证和授权方法,但如果Web服务器不足或不可用,也可以使用Web服务器本身来限制访问。...第1步 - 安装Apache Utilities包 我们将使用名为apache2-utils包的一部分的实用程序htpasswd来创建文件并管理访问受限内容所需的用户名和密码。...通常最好使用虚拟主机文件,但如果您需要允许非root用户管理自己的访问限制,请检查网站旁边的版本控制限制,或者使用.htaccess文件的Web应用程序已用于其他目的,看看第二个选项。...由于systemctl不显示所有服务管理命令的结果,我们将使用status以确保服务器正在运行: sudo systemctl restart apache2 sudo systemctl status...完成后保存并关闭文件。 接下来,我们需要将.htaccess文件添加到我们希望限制的目录中。

    3.2K50

    全面解读系统更新,收藏下这份 Android 12 (S) 版本适配自查表

    安全和隐私设置 新蓝牙运行时权限(新) 推荐⭐ 引入一些新运行时权限,用于更好地管理应用于附近蓝牙设备的连接,而无需请求位置信息权限 传感器采样率限制 已适配 系统会限制某些移动传感器和位置传感器的数据的刷新率...剪贴板访问提示(新) 已适配 应用首次从另一个应用访问剪辑数据时,会弹出一个消息框消息 隐藏应用叠加窗口(新) 推荐⭐ 应用的窗口可见时可以隐藏所有可见的系统级悬浮窗口 应用无法关闭系统对话框 强制...安全和隐私设置(以 Android 12 为目标版本) 2.1 新蓝牙运行时权限(新功能) Android 12 系统引入了新的运行时权限 BLUETOOTH_SCAN[5]、BLUETOOTH_ADVERTISE...; Android 12:重置已授予的运行时敏感权限;无法从后台运行任务;无法接收推送通知;应用缓存文件会被删除。...5.7 应用无法关闭系统对话框 为了加强用户与应用和系统互动时的控制,从 Android 12 系统开始,弃用了 ACTION_CLOSE_SYSTEM_DIALOGS[57] Intent 操作,当应用使用尝试关闭系统对话框时

    2.9K10

    查询优化器概念:关于自动调整优化器及自适应查询优化

    在运行时根据实际执行统计数据调整计划的能力会产生更优的最终计划。在选择最终计划之后,优化器将其用于后续执行,从而确保不重用次优计划。...2.1.2 自适应查询计划如何工作 自适应计划包含多个预先确定的子计划和优化器统计信息收集器。 子计划是计划的一部分,优化器可以在运行时切换到它作为备选方案。...2.1.3 自适应查询计划:加入方法示例 此示例显示优化程序如何根据运行时收集的信息选择不同的计划。 以下查询显示了order_items和prod_info表的连接。...在第一次执行SQL语句结束时,优化程序使用在执行期间收集的信息来确定自动重新优化是否具有成本优势。如果执行信息与优化程序估计值显着不同,则优化程序会在下次执行时查找替换计划。...优化程序使用上一次执行期间收集的信息来帮助确定备用计划。优化程序可以多次重新优化查询,每次收集其他数据并进一步改进计划。 自动重新优化有两种形式:统计反馈和性能反馈。

    1.6K10

    Android 12 还没用上,Android 13 已经来了!

    目前更新的内容主要还是围绕隐私和安全这个主题,我们会持续跟进官方的 发布计划表[1],最终版本预计在今年年底发布。...安全和隐私设置 附近 Wi-Fi 设备运行时权限(新) 推荐 ⭐ 引入了新运行时权限,可使应用扫描附近的 Wi-Fi 感知设备,而无需请求位置信息权限 后台访问身体传感器运行时权限(新) 强制 ❗ 引入了新的运行时权限...安全和隐私设置 通知运行时权限(新) 强制 ❗ 引入了新的运行时权限,用于管理应用发送系统通知的能力 可降级权限(新) 推荐 ⭐ 应用可以主动撤销用户已授予的运行时权限 照片选择器(新) 推荐 ⭐...现在应用在后台使用身体传感器,除了要请求现有的 BODY_SENSORS 权限外,还需要请求 BODY_SENSORS_BACKGROUND 权限(这与 ACCESS_FINE_LOCATION 和 ACCESS_BACKGROUND_LOCATION...从 Android 13 开始,系统开始支持应用级别的语言偏好设置,可以在系统设置中针对每个应用设置,也可以在运行时使用以下 API 设置: 平台 API:LocaleManager#setApplicationLocales

    1.3K20
    领券